All pastes #2065080 Raw Edit

Untitled

public text v1 · immutable
#2065080 ·published 2011-05-19 23:11 UTC
rendered paste body
.text:1043ED40 ; =============== S U B R O U T I N E =======================================
.text:1043ED40
.text:1043ED40
.text:1043ED40 sub_1043ED40    proc near               ; CODE XREF: sub_1043F420+30p
.text:1043ED40                                         ; sub_1043F820+35p
.text:1043ED40                 mov     eax, [esi+10h]
.text:1043ED43                 push    ebx
.text:1043ED44                 push    ebp
.text:1043ED45                 push    edi
.text:1043ED46                 mov     edi, [eax]
.text:1043ED48                 lea     eax, [ecx-4]
.text:1043ED4B                 xor     ebx, ebx
.text:1043ED4D                 cmp     eax, 3          ; switch 4 cases
.text:1043ED50                 ja      loc_1043F00C    ; default
.text:1043ED56                 jmp     ds:off_1043F024[eax*4] ; switch jump
.text:1043ED5D
.text:1043ED5D loc_1043ED5D:                           ; DATA XREF: .text:off_1043F024o
.text:1043ED5D                 cmp     ecx, 4          ; jumptable 1043ED56 cases 0,2
.text:1043ED60                 jnz     loc_1043EE3C
.text:1043ED66                 lea     eax, [esi+15Ch]
.text:1043ED6C                 call    sub_1043E780
.text:1043ED71                 movzx   edx, word ptr [esi+40h]
.text:1043ED75                 movzx   eax, ax
.text:1043ED78                 movzx   ecx, dx
.text:1043ED7B                 cmp     eax, ecx
.text:1043ED7D                 jz      loc_1043EE25
.text:1043ED83                 cmp     dx, bx
.text:1043ED86                 jnz     short loc_1043ED93
.text:1043ED88                 cmp     eax, 0FFFFh
.text:1043ED8D                 jz      loc_1043EE25
.text:1043ED93
.text:1043ED93 loc_1043ED93:                           ; CODE XREF: sub_1043ED40+46j
.text:1043ED93                 push    ecx
.text:1043ED94                 push    eax
.text:1043ED95                 push    offset aReceivedAckFor ; "Received ACK for block %d, expecting %d"...
.text:1043ED9A                 push    edi
.text:1043ED9B                 call    sub_104331F0
.text:1043EDA0                 add     dword ptr [esi+18h], 1
.text:1043EDA4                 mov     eax, [esi+18h]
.text:1043EDA7                 add     esp, 10h
.text:1043EDAA                 cmp     eax, [esi+20h]
.text:1043EDAD                 jle     short loc_1043EDCD
.text:1043EDAF                 movzx   ecx, word ptr [esi+40h]
.text:1043EDB3                 push    ecx
.text:1043EDB4                 push    offset aTftp_txGivingU ; "tftp_tx: giving up waiting for block %d"...
.text:1043EDB9                 push    edi
.text:1043EDBA                 call    sub_10433280
.text:1043EDBF                 add     esp, 0Ch
.text:1043EDC2                 pop     edi
.text:1043EDC3                 mov     ebx, 37h
.text:1043EDC8                 pop     ebp
.text:1043EDC9                 mov     eax, ebx
.text:1043EDCB                 pop     ebx
.text:1043EDCC                 retn
.text:1043EDCD ; ---------------------------------------------------------------------------
.text:1043EDCD
.text:1043EDCD loc_1043EDCD:                           ; CODE XREF: sub_1043ED40+6Dj
.text:1043EDCD                 mov     edx, [esi+148h]
.text:1043EDD3                 mov     ecx, [esi+150h]
.text:1043EDD9                 push    edx             ; tolen
.text:1043EDDA                 lea     eax, [esi+0C8h]
.text:1043EDE0                 push    eax             ; to
.text:1043EDE1                 mov     eax, [esi+14h]
.text:1043EDE4                 push    ebx             ; flags
.text:1043EDE5                 add     ecx, 4
.text:1043EDE8                 push    ecx             ; len
.text:1043EDE9                 lea     edx, [esi+160h]
.text:1043EDEF                 push    edx             ; buf
.text:1043EDF0                 push    eax             ; s
.text:1043EDF1                 call    ds:sendto
.text:1043EDF7                 test    eax, eax
.text:1043EDF9                 jge     short loc_1043EE1F
.text:1043EDFB                 call    ds:__imp_WSAGetLastError
.text:1043EE01                 mov     ecx, [esi+10h]
.text:1043EE04                 push    eax
.text:1043EE05                 push    ecx
.text:1043EE06                 call    sub_1044F4B0
.text:1043EE0B                 push    eax
.text:1043EE0C                 push    offset aS_21    ; "%s"
.text:1043EE11                 push    edi
.text:1043EE12                 call    sub_10433280
.text:1043EE17                 add     esp, 14h
.text:1043EE1A                 mov     ebx, 37h
.text:1043EE1F
.text:1043EE1F loc_1043EE1F:                           ; CODE XREF: sub_1043ED40+B9j
.text:1043EE1F                 pop     edi
.text:1043EE20                 pop     ebp
.text:1043EE21                 mov     eax, ebx
.text:1043EE23                 pop     ebx
.text:1043EE24                 retn
.text:1043EE25 ; ---------------------------------------------------------------------------
.text:1043EE25
.text:1043EE25 loc_1043EE25:                           ; CODE XREF: sub_1043ED40+3Dj
.text:1043EE25                                         ; sub_1043ED40+4Dj
.text:1043EE25                 lea     edx, [esi+38h]
.text:1043EE28                 push    edx             ; Time
.text:1043EE29                 call    __time64
.text:1043EE2E                 mov     ebp, 1
.text:1043EE33                 add     esp, 4
.text:1043EE36                 add     [esi+40h], bp
.text:1043EE3A                 jmp     short loc_1043EE45
.text:1043EE3C ; ---------------------------------------------------------------------------
.text:1043EE3C
.text:1043EE3C loc_1043EE3C:                           ; CODE XREF: sub_1043ED40+20j
.text:1043EE3C                 mov     ebp, 1
.text:1043EE41                 mov     [esi+40h], bp
.text:1043EE45
.text:1043EE45 loc_1043EE45:                           ; CODE XREF: sub_1043ED40+FAj
.text:1043EE45                 mov     [esi+18h], ebx
.text:1043EE48                 lea     ebx, [esi+160h]
.text:1043EE4E                 mov     eax, 3
.text:1043EE53                 mov     ecx, ebx
.text:1043EE55                 call    sub_1043E750
.text:1043EE5A                 mov     ax, [esi+40h]
.text:1043EE5E                 mov     ecx, ebx
.text:1043EE60                 call    sub_1043E760
.text:1043EE65                 cmp     [esi+40h], bp
.text:1043EE69                 jbe     short loc_1043EE7D
.text:1043EE6B                 mov     eax, [esi+150h]
.text:1043EE71                 cmp     eax, [esi+154h]
.text:1043EE77                 jl      loc_1043F000
.text:1043EE7D
.text:1043EE7D loc_1043EE7D:                           ; CODE XREF: sub_1043ED40+129j
.text:1043EE7D                 mov     ecx, [esi+154h]
.text:1043EE83                 mov     edx, [esi+10h]
.text:1043EE86                 lea     ebp, [esi+150h]
.text:1043EE8C                 push    ebp
.text:1043EE8D                 push    ecx
.text:1043EE8E                 push    edx
.text:1043EE8F                 call    sub_1042F2A0
.text:1043EE94                 add     esp, 0Ch
.text:1043EE97                 test    eax, eax
.text:1043EE99                 jnz     loc_1043F01D
.text:1043EE9F                 mov     eax, [esi+148h]
.text:1043EEA5                 mov     edx, [ebp+0]
.text:1043EEA8                 push    eax             ; tolen
.text:1043EEA9                 mov     eax, [ebx]
.text:1043EEAB                 lea     ecx, [esi+0C8h]
.text:1043EEB1                 push    ecx             ; to
.text:1043EEB2                 mov     ecx, [esi+14h]
.text:1043EEB5                 push    0               ; flags
.text:1043EEB7                 add     edx, 4
.text:1043EEBA                 push    edx             ; len
.text:1043EEBB                 push    eax             ; buf
.text:1043EEBC                 push    ecx             ; s
.text:1043EEBD                 call    ds:sendto
.text:1043EEC3                 test    eax, eax
.text:1043EEC5                 jge     short loc_1043EEEF
.text:1043EEC7                 call    ds:__imp_WSAGetLastError
.text:1043EECD                 mov     edx, [esi+10h]
.text:1043EED0                 push    eax
.text:1043EED1                 push    edx
.text:1043EED2                 call    sub_1044F4B0
.text:1043EED7                 push    eax
.text:1043EED8                 push    offset aS_21    ; "%s"
.text:1043EEDD                 push    edi
.text:1043EEDE                 call    sub_10433280
.text:1043EEE3                 add     esp, 14h
.text:1043EEE6                 pop     edi
.text:1043EEE7                 pop     ebp
.text:1043EEE8                 mov     eax, 37h
.text:1043EEED                 pop     ebx
.text:1043EEEE                 retn
.text:1043EEEF ; ---------------------------------------------------------------------------
.text:1043EEEF
.text:1043EEEF loc_1043EEEF:                           ; CODE XREF: sub_1043ED40+185j
.text:1043EEEF                 mov     eax, [ebp+0]
.text:1043EEF2                 cdq
.text:1043EEF3                 add     [edi+40h], eax
.text:1043EEF6                 mov     ecx, [edi+40h]
.text:1043EEF9                 adc     [edi+44h], edx
.text:1043EEFC                 mov     eax, [edi+44h]
.text:1043EEFF                 push    eax
.text:1043EF00                 push    ecx
.text:1043EF01                 push    edi
.text:1043EF02                 call    sub_10438C80
.text:1043EF07                 add     esp, 0Ch
.text:1043EF0A                 pop     edi
.text:1043EF0B                 pop     ebp
.text:1043EF0C                 xor     eax, eax
.text:1043EF0E                 pop     ebx
.text:1043EF0F                 retn
.text:1043EF10 ; ---------------------------------------------------------------------------
.text:1043EF10
.text:1043EF10 loc_1043EF10:                           ; CODE XREF: sub_1043ED40+16j
.text:1043EF10                                         ; DATA XREF: .text:off_1043F024o
.text:1043EF10                 movzx   edx, word ptr [esi+40h] ; jumptable 1043ED56 case 3
.text:1043EF14                 mov     ebp, 1
.text:1043EF19                 add     [esi+18h], ebp
.text:1043EF1C                 mov     eax, [esi+18h]
.text:1043EF1F                 push    eax
.text:1043EF20                 add     edx, ebp
.text:1043EF22                 and     edx, 0FFFFh
.text:1043EF28                 push    edx
.text:1043EF29                 push    offset aTimeoutWaiting ; "Timeout waiting for block %d ACK.  Retr"...
.text:1043EF2E                 push    edi
.text:1043EF2F                 call    sub_104331F0
.text:1043EF34                 mov     eax, [esi+18h]
.text:1043EF37                 add     esp, 10h
.text:1043EF3A                 cmp     eax, [esi+20h]
.text:1043EF3D                 jle     short loc_1043EF52
.text:1043EF3F                 pop     edi
.text:1043EF40                 pop     ebp
.text:1043EF41                 mov     dword ptr [esi+8], 0FFFFFF9Dh
.text:1043EF48                 mov     dword ptr [esi], 3
.text:1043EF4E                 xor     eax, eax
.text:1043EF50                 pop     ebx
.text:1043EF51                 retn
.text:1043EF52 ; ---------------------------------------------------------------------------
.text:1043EF52
.text:1043EF52 loc_1043EF52:                           ; CODE XREF: sub_1043ED40+1FDj
.text:1043EF52                 mov     ecx, [esi+148h]
.text:1043EF58                 mov     eax, [esi+150h]
.text:1043EF5E                 push    ecx             ; tolen
.text:1043EF5F                 mov     ecx, [esi+160h]
.text:1043EF65                 lea     edx, [esi+0C8h]
.text:1043EF6B                 push    edx             ; to
.text:1043EF6C                 mov     edx, [esi+14h]
.text:1043EF6F                 push    ebx             ; flags
.text:1043EF70                 add     eax, 4
.text:1043EF73                 push    eax             ; len
.text:1043EF74                 push    ecx             ; buf
.text:1043EF75                 push    edx             ; s
.text:1043EF76                 call    ds:sendto
.text:1043EF7C                 test    eax, eax
.text:1043EF7E                 jge     short loc_1043EFA8
.text:1043EF80                 call    ds:__imp_WSAGetLastError
.text:1043EF86                 push    eax
.text:1043EF87                 mov     eax, [esi+10h]
.text:1043EF8A                 push    eax
.text:1043EF8B                 call    sub_1044F4B0
.text:1043EF90                 push    eax
.text:1043EF91                 push    offset aS_21    ; "%s"
.text:1043EF96                 push    edi
.text:1043EF97                 call    sub_10433280
.text:1043EF9C                 add     esp, 14h
.text:1043EF9F                 pop     edi
.text:1043EFA0                 pop     ebp
.text:1043EFA1                 mov     eax, 37h
.text:1043EFA6                 pop     ebx
.text:1043EFA7                 retn
.text:1043EFA8 ; ---------------------------------------------------------------------------
.text:1043EFA8
.text:1043EFA8 loc_1043EFA8:                           ; CODE XREF: sub_1043ED40+23Ej
.text:1043EFA8                 mov     ecx, [edi+44h]
.text:1043EFAB                 mov     edx, [edi+40h]
.text:1043EFAE                 push    ecx
.text:1043EFAF                 push    edx
.text:1043EFB0                 push    edi
.text:1043EFB1                 call    sub_10438C80
.text:1043EFB6                 add     esp, 0Ch
.text:1043EFB9                 pop     edi
.text:1043EFBA                 pop     ebp
.text:1043EFBB                 xor     eax, eax
.text:1043EFBD                 pop     ebx
.text:1043EFBE                 retn
.text:1043EFBF ; ---------------------------------------------------------------------------
.text:1043EFBF
.text:1043EFBF loc_1043EFBF:                           ; CODE XREF: sub_1043ED40+16j
.text:1043EFBF                                         ; DATA XREF: .text:off_1043F024o
.text:1043EFBF                 lea     edi, [esi+160h] ; jumptable 1043ED56 case 1
.text:1043EFC5                 mov     eax, 5
.text:1043EFCA                 mov     ecx, edi
.text:1043EFCC                 mov     dword ptr [esi], 3
.text:1043EFD2                 call    sub_1043E750
.text:1043EFD7                 mov     ax, [esi+40h]
.text:1043EFDB                 mov     ecx, edi
.text:1043EFDD                 call    sub_1043E760
.text:1043EFE2                 mov     eax, [esi+148h]
.text:1043EFE8                 mov     edx, [edi]
.text:1043EFEA                 push    eax             ; tolen
.text:1043EFEB                 mov     eax, [esi+14h]
.text:1043EFEE                 lea     ecx, [esi+0C8h]
.text:1043EFF4                 push    ecx             ; to
.text:1043EFF5                 push    ebx             ; flags
.text:1043EFF6                 push    4               ; len
.text:1043EFF8                 push    edx             ; buf
.text:1043EFF9                 push    eax             ; s
.text:1043EFFA                 call    ds:sendto
.text:1043F000
.text:1043F000 loc_1043F000:                           ; CODE XREF: sub_1043ED40+137j
.text:1043F000                 pop     edi
.text:1043F001                 pop     ebp
.text:1043F002                 mov     dword ptr [esi], 3
.text:1043F008                 xor     eax, eax
.text:1043F00A                 pop     ebx
.text:1043F00B                 retn
.text:1043F00C ; ---------------------------------------------------------------------------
.text:1043F00C
.text:1043F00C loc_1043F00C:                           ; CODE XREF: sub_1043ED40+10j
.text:1043F00C                 push    ecx             ; default
.text:1043F00D                 push    offset aTftp_txInterna ; "tftp_tx: internal error, event: %i"
.text:1043F012                 push    edi
.text:1043F013                 call    sub_10433280
.text:1043F018                 add     esp, 0Ch
.text:1043F01B                 xor     eax, eax
.text:1043F01D
.text:1043F01D loc_1043F01D:                           ; CODE XREF: sub_1043ED40+159j
.text:1043F01D                 pop     edi
.text:1043F01E                 pop     ebp
.text:1043F01F                 pop     ebx
.text:1043F020                 retn
.text:1043F020 sub_1043ED40    endp
.text:1043F020
.text:1043F020 ; ---------------------------------------------------------------------------
.text:1043F021                 align 4
.text:1043F024 off_1043F024    dd offset loc_1043ED5D  ; DATA XREF: sub_1043ED40+16r
.text:1043F024                 dd offset loc_1043EFBF  ; jump table for switch statement
.text:1043F024                 dd offset loc_1043ED5D
.text:1043F024                 dd offset loc_1043EF10
.text:1043F034                 align 10h
.text:1043F040
.text:1043F040 loc_1043F040:                           ; CODE XREF: .text:1043F2E8j
.text:1043F040                                         ; .text:1043FEBAj
.text:1043F040                 cmp     eax, 0FFFFFF9Ch
.text:1043F043                 jz      short loc_1043F097
.text:1043F045                 add     eax, 63h
.text:1043F048                 cmp     eax, 6Ah        ; switch 107 cases
.text:1043F04B                 ja      short loc_1043F091 ; default
.text:1043F04B                                         ; jumptable 1043F054 cases 2-98
.text:1043F04D                 movzx   eax, ds:byte_1043F0C4[eax]
.text:1043F054                 jmp     ds:off_1043F09C[eax*4] ; switch jump
.text:1043F05B
.text:1043F05B loc_1043F05B:                           ; DATA XREF: .text:off_1043F09Co
.text:1043F05B                 mov     eax, 44h        ; jumptable 1043F054 case 100
.text:1043F060                 retn
.text:1043F061 ; ---------------------------------------------------------------------------
.text:1043F061
.text:1043F061 loc_1043F061:                           ; CODE XREF: .text:1043F054j
.text:1043F061                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F061                 mov     eax, 45h        ; jumptable 1043F054 case 101
.text:1043F066                 retn
.text:1043F067 ; ---------------------------------------------------------------------------
.text:1043F067
.text:1043F067 loc_1043F067:                           ; CODE XREF: .text:1043F054j
.text:1043F067                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F067                 mov     eax, 46h        ; jumptable 1043F054 case 102
.text:1043F06C                 retn
.text:1043F06D ; ---------------------------------------------------------------------------
.text:1043F06D
.text:1043F06D loc_1043F06D:                           ; CODE XREF: .text:1043F054j
.text:1043F06D                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F06D                 mov     eax, 47h        ; jumptable 1043F054 cases 99,103
.text:1043F072                 retn
.text:1043F073 ; ---------------------------------------------------------------------------
.text:1043F073
.text:1043F073 loc_1043F073:                           ; CODE XREF: .text:1043F054j
.text:1043F073                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F073                 mov     eax, 48h        ; jumptable 1043F054 case 104
.text:1043F078                 retn
.text:1043F079 ; ---------------------------------------------------------------------------
.text:1043F079
.text:1043F079 loc_1043F079:                           ; CODE XREF: .text:1043F054j
.text:1043F079                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F079                 mov     eax, 49h        ; jumptable 1043F054 case 105
.text:1043F07E                 retn
.text:1043F07F ; ---------------------------------------------------------------------------
.text:1043F07F
.text:1043F07F loc_1043F07F:                           ; CODE XREF: .text:1043F054j
.text:1043F07F                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F07F                 mov     eax, 4Ah        ; jumptable 1043F054 case 106
.text:1043F084                 retn
.text:1043F085 ; ---------------------------------------------------------------------------
.text:1043F085
.text:1043F085 loc_1043F085:                           ; CODE XREF: .text:1043F054j
.text:1043F085                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F085                 mov     eax, 1Ch        ; jumptable 1043F054 case 0
.text:1043F08A                 retn
.text:1043F08B ; ---------------------------------------------------------------------------
.text:1043F08B
.text:1043F08B loc_1043F08B:                           ; CODE XREF: .text:1043F054j
.text:1043F08B                                         ; DATA XREF: .text:off_1043F09Co
.text:1043F08B                 mov     eax, 7          ; jumptable 1043F054 case 1
.text:1043F090                 retn
.text:1043F091 ; ---------------------------------------------------------------------------
.text:1043F091
.text:1043F091 loc_1043F091:                           ; CODE XREF: .text:1043F04Bj
.text:1043F091                                         ; .text:1043F054j
.text:1043F091                                         ; DATA XREF: ...
.text:1043F091                 mov     eax, 2Ah        ; default
.text:1043F091                                         ; jumptable 1043F054 cases 2-98
.text:1043F096                 retn
.text:1043F097 ; ---------------------------------------------------------------------------
.text:1043F097
.text:1043F097 loc_1043F097:                           ; CODE XREF: .text:1043F043j
.text:1043F097                 xor     eax, eax
.text:1043F099                 retn
.text:1043F099 ; ---------------------------------------------------------------------------
.text:1043F09A                 align 4
.text:1043F09C off_1043F09C    dd offset loc_1043F085, offset loc_1043F08B, offset loc_1043F06D
.text:1043F09C                                         ; DATA XREF: .text:1043F054r
.text:1043F09C                 dd offset loc_1043F05B, offset loc_1043F061, offset loc_1043F067 ; jump table for switch statement
.text:1043F09C                 dd offset loc_1043F073, offset loc_1043F079, offset loc_1043F07F
.text:1043F09C                 dd offset loc_1043F091
.text:1043F0C4 byte_1043F0C4   db      0,     1,     9,     9 ; DATA XREF: .text:1043F04Dr
.text:1043F0C4                 db      9,     9,     9,     9 ; indirect table for switch statement
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     9
.text:1043F0C4                 db      9,     9,     9,     2
.text:1043F0C4                 db      3,     4,     5,     2
.text:1043F0C4                 db      6,     7,     8
.text:1043F12F                 align 10h
.text:1043F130                 mov     eax, [esp+4]
.text:1043F134                 push    esi
.text:1043F135                 mov     esi, [eax+368h]
.text:1043F13B                 test    esi, esi
.text:1043F13D                 jz      short loc_1043F161
.text:1043F13F                 mov     ecx, [esi+15Ch]
.text:1043F145                 push    ecx