Function at 0x415a20
Capabilities:
Contain obfuscated stackstrings
Enumerate pe sections
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xfc
mov esi, dword [ebp + 8]
mov dword [esp], 0
call sym._time
mov dword [esi + 0x24], eax
mov ecx, 0xa
lea eax, [ebp - 0x28]
mov dword [esp + 8], ecx
mov edx, dword [esi + 0xa0]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._memmove
movzx edx, byte [ebp - 0x27]
mov ecx, 0xa
cmp dl, 3
je 0x415b58
cmp dl, 5
je 0x415c70
cmp dl, 1
je 0x415ebd
mov cl, dl
sub cl, 7
cmp cl, 0xc
jbe 0x415aa0
mov ecx, 1
lea esp, [ebp - 0xc]
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esi + 0x30]
mov ecx, 1
test edi, edi
je 0x415a8f
cmp dl, 8
je 0x41605b
movzx eax, byte [ebp - 0x22]
movzx edx, word [ebp - 0x24]
shl eax, 0x10
lea ebx, [edx + eax + 0xa]
cmp ebx, dword [esi + 0xc4]
ja 0x415a8a
test byte [ebp - 0x26], 7
jne 0x416093
movzx eax, byte [ebp - 0x27]
cmp al, 0x13
je 0x416063
cmp al, 7
je 0x415af2
mov ebx, dword [esi + 0x18]
mov ecx, 1
test ebx, ebx
je 0x415a8f
movzx eax, word [ebp - 0x26]
test al, 0x38
je 0x416063
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov edi, dword [esi + 0xc4]
mov dword [esp + 8], edi
mov ecx, dword [esi + 0xbc]
mov dword [esp + 4], ecx
mov edx, dword [esi + 0xa0]
mov dword [esp], edx
call sym.ExpandDataPack_DC_HEAD_const__DC_HEAD__int__unsigned_short_
test eax, eax
mov ecx, 1
jle 0x415a8f
cmp byte [ebp - 0x27], 7
je 0x4160b9
mov ebx, dword [esi + 0xbc]
mov dword [esp + 4], ebx
movzx edx, word [esi + 0x38]
mov dword [esp], edx
call sym.MarketStreamProcess_unsigned_short__char_
jmp 0x415a8a
cld
xor edx, edx
lea ebx, [ebp - 0x58]
mov eax, edx
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, 2
lea edi, [ebp - 0x68]
rep stosd dword es:[edi], eax
mov word [edi], 0
mov eax, 0xa
lea edi, [ebp - 0x68]
mov dword [esp + 4], edi
mov byte [ebp - 0x68], 0x6c
mov byte [ebp - 0x67], 4
mov byte [ebp - 0x62], 0
mov dword [esp + 8], eax
mov ecx, dword [esi + 0xb0]
mov word [ebp - 0x64], 0x28
mov dword [esp], ecx
call sym._memmove
mov edx, 0xa
mov eax, 0x28
mov dword [esi + 0xb4], edx
mov dword [ebp - 0x58], 0x6e687a64
mov word [ebp - 0x54], 0x7465
mov byte [ebp - 0x52], 0
mov dword [ebp - 0x48], 0x6c676165
mov word [ebp - 0x44], 0x65
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov ebx, dword [esi + 0xb4]
mov edi, dword [esi + 0xb0]
add ebx, edi
mov dword [esp], ebx
call sym._memmove
mov eax, dword [esi + 0xb4]
add eax, 0x28
test eax, eax
mov dword [esi + 0xb4], eax
jg 0x415c29
jmp 0x415a8a
add dword [esi + 0x9c], eax
mov edx, dword [esi + 0xb8]
add edx, eax
mov eax, dword [esi + 0xb4]
cmp edx, eax
jge 0x416040
mov dword [esi + 0xb8], edx
mov edx, dword [esi + 0xb8]
sub eax, edx
cmp eax, 0x58c
jle 0x415c3d
mov eax, 0x58c
mov dword [esp + 8], eax
xor edi, edi
mov dword [esp + 0xc], edi
mov ecx, dword [esi + 0xb0]
add edx, ecx
mov dword [esp + 4], edx
mov ebx, dword [esi + 4]
mov dword [esp], ebx
call sub.WSOCK32.DLL_send
sub esp, 0x10
cmp eax, 0xffffffff
jne 0x415c07
jmp 0x415a8a
mov ecx, 0x20
xor edi, edi
lea edx, [ebp - 0x88]
mov dword [esp + 8], ecx
mov ebx, dword [esi + 0xa0]
mov dword [ebp - 0xcc], edi
mov dword [esp], edx
add ebx, 0xa
mov dword [esp + 4], ebx
call sym._memmove
mov eax, dword [ebp - 0x84]
test eax, eax
jne 0x415a8a
mov ebx, dword [esi + 0x88]
mov edx, dword [ebx + 0x58]
mov edi, dword [ebx + 0x5c]
movzx eax, word [ebx]
mov dword [esi + 0x5a], edx
mov dword [esi + 0x80], edi
mov word [esi + 0x38], ax
lea eax, [esi + 0x3a]
movzx ecx, word [ebx + 0x60]
add ebx, 2
mov word [esi + 0x84], cx
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._strcpy
mov ecx, dword [esi + 0x88]
xor edx, edx
nop
lea esi, [esi]
movzx eax, word [ecx + edx*2 + 0x36]
test ax, ax
je 0x4161b0
mov word [esi + edx*2 + 0x60], ax
movzx ebx, word [ecx + edx*2 + 0x46]
mov word [esi + edx*2 + 0x70], bx
inc edx
cmp edx, 7
jle 0x415cf0
cmp byte [esi + 0x94], 0
jne 0x415e6c
movzx ecx, word [esi + 0x38]
mov byte [esi + 0x94], 1
movzx edi, cx
cmp di, 0x4853
sete dl
cmp di, 0x5a53
sete al
or dl, al
jne 0x415d4d
cmp cx, 0x4b48
jne 0x4161b9
mov dword [esp], 0x42
mov ebx, 0x400000
mov edi, 0x400000
mov dword [esp + 4], ebx
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
sub esp, 4
mov ecx, 0x400000
mov ebx, eax
mov dword [esp + 4], ecx
mov dword [esp], 0x42
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
mov dword [ebp - 0xd0], eax
sub esp, 4
mov dword [esp + 4], edi
mov dword [esp], 0x42
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
mov dword [ebp - 0xd4], eax
sub esp, 4
mov edx, 0x6000
mov dword [esp + 4], edx
mov dword [esp], 0x42
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
mov edi, eax
mov ecx, dword [esi + 0xa0]
sub esp, 4
mov eax, dword [esi + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym._memcpy
mov eax, dword [esi + 0xa0]
test eax, eax
jne 0x416320
mov eax, dword [esi + 0xb0]
test eax, eax
jne 0x4162e9
mov eax, dword [esi + 0xbc]
test eax, eax
jne 0x4162b2
mov eax, dword [esi + 0xc0]
test eax, eax
jne 0x41638b
mov dword [esi + 0xa0], ebx
mov edx, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xd0]
mov dword [esi + 0xb0], edi
mov edi, 0x400000
mov dword [esi + 0xbc], edx
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xc4], edi
cld
xor eax, eax
mov ecx, 8
lea edi, [ebp - 0xa8]
mov edx, 1
rep stosd dword es:[edi], eax
mov dword [ebp - 0x98], edx
xor ecx, ecx
cmp byte [esi + 0x2c], 0
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0x9c], eax
je 0x415eac
cmp word [esi + 0x84], 0
jne 0x41629a
cmp byte [ebp - 0x28], 0x6c
je 0x415ffc
xor ecx, ecx
jmp 0x415a8f
mov ebx, 3
lea eax, [ebp - 0xc8]
mov dword [esp + 8], ebx
mov edx, dword [esi + 0xa0]
mov dword [esp], eax
add edx, 0xa
mov dword [esp + 4], edx
call sym._memmove
mov edi, dword [esi + 0x20]
test edi, edi
je 0x415f13
movzx ecx, byte [ebp - 0xc6]
mov ebx, dword [ebp - 0xc8]
movzx eax, cl
shl eax, 0x10
movzx edx, bx
add edx, eax
cmp edi, edx
je 0x415f20
mov dword [esp], 0
call sym._time
mov dword [esi + 0x1c], eax
movzx ecx, byte [ebp - 0xc6]
mov ebx, dword [ebp - 0xc8]
movzx eax, cl
movzx edx, bx
shl eax, 0x10
add edx, eax
lea ecx, [ebp - 0x28]
mov ebx, 0xa
mov dword [esi + 0x20], edx
mov dword [esp + 8], ebx
lea ebx, [ebp - 0xc8]
mov dword [esp + 4], ecx
mov edi, dword [esi + 0xb0]
mov dword [esp], edi
call sym._memmove
mov eax, 0xa
mov edx, 3
mov dword [esi + 0xb4], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov edi, dword [esi + 0xb4]
mov ecx, dword [esi + 0xb0]
add edi, ecx
mov dword [esp], edi
call sym._memmove
mov eax, dword [esi + 0xb4]
add eax, 3
test eax, eax
mov dword [esi + 0xb4], eax
jg 0x415fba
jmp 0x415a8a
add dword [esi + 0x9c], eax
mov edx, dword [esi + 0xb8]
add edx, eax
mov eax, dword [esi + 0xb4]
cmp edx, eax
jge 0x416040
mov dword [esi + 0xb8], edx
mov edx, dword [esi + 0xb8]
sub eax, edx
cmp eax, 0x58c
jle 0x415fce
mov eax, 0x58c
mov dword [esp + 8], eax
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov ecx, dword [esi + 0xb0]
add edx, ecx
mov dword [esp + 4], edx
mov edi, dword [esi + 4]
mov dword [esp], edi
call sub.WSOCK32.DLL_send
sub esp, 0x10
cmp eax, 0xffffffff
jne 0x415f98
jmp 0x415a8a
cmp word [esi + 0x38], 0
je 0x415eb6
mov dword [esp], 0x5631e0
lea edi, [esi + 0x38]
mov dword [esp + 4], edi
call method.c_HQserver.CheckMarketSource_DC_LOGIN_
test al, al
jne 0x41651f
mov esi, 2
mov eax, 3
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xa4], eax
xor ecx, ecx
jmp 0x415a8f
inc dword [esi + 0x98]
xor eax, eax
xor edx, edx
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb8], edx
jmp 0x415a8a
inc dword [esi + 0x28]
jmp 0x415ab5
movzx ebx, byte [ebp - 0x22]
movzx edi, word [ebp - 0x24]
shl ebx, 0x10
lea ecx, [edi + ebx + 0xa]
mov dword [esp + 8], ecx
mov edx, dword [esi + 0xa0]
mov dword [esp + 4], edx
mov eax, dword [esi + 0xbc]
mov dword [esp], eax
call sym._memmove
jmp 0x415b33
xor edi, edi
mov dword [esp + 4], edi
mov ecx, dword [esi + 0xa0]
mov dword [esp], ecx
call sym.DecryptDataPackWithKey_DC_HEAD__unsigned_char_
test eax, eax
mov ecx, 1
je 0x415a8f
jmp 0x415ad6
mov ebx, dword [esi + 0xbc]
mov eax, dword [esi + 0xc0]
lea edx, [ebx + 0xa]
mov dword [ebp - 0xf0], eax
movzx eax, word [edx + 4]
mov dword [ebp - 0xdc], edx
test ax, ax
je 0x416357
test al, 1
jne 0x415a8a
mov edx, dword [ebp - 0xf0]
mov edi, dword [edx]
cmp dword [ebx + 0xa], edi
jne 0x415a8a
xor eax, eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xdc]
movzx edx, word [eax + 0xa]
test dx, dx
jle 0x415b43
mov dword [ebp - 0xf4], eax
mov ebx, dword [ebp - 0xf0]
xor edi, edi
cmp word [ebx + 0xa], 0
jle 0x41618a
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0xf0]
add edx, 0xc
add ecx, 0x40
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xf4]
lea eax, [ebx + 0xe]
mov dword [esp + 4], eax
add ecx, 0xe
mov dword [esp], ecx
call sym._strcmp
test eax, eax
je 0x4163c2
mov eax, dword [ebp - 0xf0]
inc edi
add ebx, 0x44
movsx ecx, word [eax + 0xa]
cmp ecx, edi
jg 0x41614e
mov ebx, dword [ebp - 0xdc]
movzx edx, word [ebx + 0xa]
inc dword [ebp - 0xe0]
movsx edi, dx
add dword [ebp - 0xf4], 0x44
cmp edi, dword [ebp - 0xe0]
jg 0x41611b
jmp 0x415b3d
mov word [esi + 0x5e], dx
jmp 0x415d13
mov dword [esp], 0x42
mov ebx, 0x100000
mov edi, 0x100000
mov dword [esp + 4], ebx
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
sub esp, 4
mov edx, 0x100000
mov ebx, eax
mov dword [esp + 4], edx
mov dword [esp], 0x42
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
mov dword [ebp - 0xf8], eax
sub esp, 4
mov dword [esp + 4], edi
mov dword [esp], 0x42
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
mov edi, eax
mov ecx, dword [esi + 0xa0]
sub esp, 4
mov eax, dword [esi + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym._memcpy
mov eax, dword [esi + 0xa0]
test eax, eax
jne 0x4164e8
mov eax, dword [esi + 0xbc]
test eax, eax
jne 0x4164b1
mov eax, dword [esi + 0xc0]
test eax, eax
jne 0x41647a
mov dword [esi + 0xa0], ebx
mov ebx, dword [ebp - 0xf8]
mov dword [esi + 0xbc], edi
mov edi, 0x100000
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xc4], edi
jmp 0x415e6c
mov dword [esp], 0x3e8
call sub.KERNEL32.dll_Sleep
mov byte [esi + 0x2c], 0
sub esp, 4
jmp 0x415eac
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalUnlock
mov ecx, dword [esi + 0xbc]
sub esp, 4
mov dword [esp], ecx
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
sub esp, 4
jmp 0x415e2f
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalUnlock
mov edx, dword [esi + 0xb0]
sub esp, 4
mov dword [esp], edx
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
sub esp, 4
jmp 0x415e21
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalUnlock
mov eax, dword [esi + 0xa0]
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
sub esp, 4
jmp 0x415e13
movzx ecx, byte [ebx + 6]
mov edx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xf0]
movzx eax, word [ebx + 4]
shl ecx, 0x10
mov dword [esp + 4], edx
mov dword [esp], edi
add eax, ecx
mov dword [esp + 8], eax
call sym._memmove
mov ecx, dword [ebx + 0xa]
mov dword [esi + 0x18], ecx
jmp 0x415b3d
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalUnlock
mov eax, dword [esi + 0xc0]
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
sub esp, 4
jmp 0x415e3d
mov edx, dword [ebp - 0xf4]
movzx eax, word [edx + 0xc]
mov edx, dword [ebp - 0xe4]
mov ecx, dword [edx + 2]
mov word [ebx + 0xc], ax
mov dword [ebx + 0xe], ecx
mov edi, dword [edx + 6]
mov ecx, dword [edx + 0xc]
mov dword [ebx + 0x12], edi
mov dword [ebx + 0x18], ecx
mov edi, dword [edx + 0x10]
movzx eax, word [edx + 0xa]
mov dword [ebx + 0x1c], edi
mov word [ebx + 0x16], ax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x20], eax
mov ecx, dword [edx + 0x18]
mov dword [ebx + 0x24], ecx
mov edi, dword [edx + 0x1c]
mov dword [ebx + 0x28], edi
mov eax, dword [edx + 0x20]
mov dword [ebx + 0x2c], eax
mov ecx, dword [edx + 0x24]
movzx eax, byte [edx + 0x2c]
mov dword [ebx + 0x30], ecx
mov edi, dword [edx + 0x28]
movzx ecx, byte [edx + 0x2d]
mov byte [ebx + 0x38], al
mov dword [ebx + 0x34], edi
movzx edi, word [edx + 0x2e]
mov byte [ebx + 0x39], cl
mov eax, dword [ebp - 0xf4]
lea ecx, [ebx + 0x3c]
mov word [ebx + 0x3a], di
add eax, 0x3c
lea edi, [ebx + 0x40]
mov dword [esp + 4], eax
mov dword [esp], ecx
call method.MWORD.operator_MWORD_const_
mov dword [esp], edi
mov edx, dword [ebp - 0xe8]
mov dword [esp + 4], edx
call method.MWORD.operator_MWORD_const_
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x38]
mov ecx, dword [edx + 0x3c]
mov edi, dword [edx + 0x40]
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x48], ecx
mov dword [ebx + 0x4c], edi
jmp 0x416180
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalUnlock
mov edx, dword [esi + 0xc0]
sub esp, 4
mov dword [esp], edx
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
sub esp, 4
jmp 0x416272
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalUnlock
mov eax, dword [esi + 0xbc]
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
sub esp, 4
jmp 0x416264
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalUnlock
mov ecx, dword [esi + 0xa0]
sub esp, 4
mov dword [esp], ecx
call sub.KERNEL32.dll_GlobalHandle
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
sub esp, 4
jmp 0x416256
mov dword [esp], 0x55e9d0
mov ecx, 0x55e9d0
xor ebx, ebx
mov dword [ebp - 0xb8], ecx
call sub.KERNEL32.dll_EnterCriticalSection
movzx edx, word [esi + 0x38]
mov dword [ebp - 0xcc], ebx
sub esp, 4
xor ecx, ecx
mov byte [ebp - 0xd5], 0
movzx ebx, dx
mov word [ebp - 0xea], dx
mov edx, 0x55e9f0
jmp 0x41656d
inc ecx
add edx, 0xc
cmp ecx, 0x1f
jg 0x416738
movzx eax, word [edx]
cmp ebx, eax
jne 0x416560
mov byte [ebp - 0xd5], 1
cmp ecx, 0x1f
jg 0x41661c
cmp byte [ebp - 0xd5], 0
je 0x416759
lea eax, [ecx + ecx*2]
shl eax, 2
cmp word [eax + 0x55e9f0], 0
je 0x416759
movzx edx, word [edi + 0x4c]
test dx, dx
jne 0x416799
mov eax, dword [eax + 0x55e9f8]
mov dword [ebp - 0xcc], eax
test dx, dx
jne 0x416608
lea eax, [ecx + ecx*2]
shl eax, 2
mov edi, dword [eax + 0x55e9f4]
test edi, edi
jne 0x41661c
mov dword [eax + 0x55e9f4], esi
mov ebx, 1
mov eax, dword [ebp - 0xb8]
mov dword [esp], eax
call sub.KERNEL32.dll_LeaveCriticalSection
sub esp, 4
test bl, bl
jne 0x416620
mov esi, 2
mov eax, 2
mov dword [ebp - 0xa8], esi
jmp 0x416032
lea eax, [ecx + ecx*2]
shl eax, 2
mov edx, dword [eax + 0x55e9f8]
test edx, edx
je 0x416781
xor ebx, ebx
jmp 0x4165de
cmp dword [ebp - 0xcc], 1
lea ebx, [ebp - 0x68]
mov byte [esi + 0x86], 1
mov edi, ebx
cld
mov ecx, 2
sbb edx, edx
xor eax, eax
not edx
and edx, 3
rep stosd dword es:[edi], eax
mov word [edi], 0
mov ecx, 0xa
mov edi, 0xa
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov byte [ebp - 0x68], 0x6c
mov byte [ebp - 0x67], 5
mov byte [ebp - 0x62], 0
mov dword [ebp - 0xa8], edx
mov edx, dword [esi + 0xb0]
mov word [ebp - 0x64], 0x20
mov dword [esp], edx
call sym._memmove
mov dword [esi + 0xb4], edi
mov eax, 0x20
lea ecx, [ebp - 0xa8]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov edx, dword [esi + 0xb4]
mov ebx, dword [esi + 0xb0]
add edx, ebx
mov dword [esp], edx
call sym._memmove
add dword [esi + 0xb4], 0x20
mov edi, dword [ebp - 0xa8]
test edi, edi
je 0x41678c
mov eax, dword [esi + 0xb4]
test eax, eax
jg 0x4166f6
jmp 0x415a8a
add dword [esi + 0x9c], eax
mov edx, dword [esi + 0xb8]
add edx, eax
mov eax, dword [esi + 0xb4]
cmp edx, eax
jge 0x416040
mov dword [esi + 0xb8], edx
mov edx, dword [esi + 0xb8]
sub eax, edx
cmp eax, 0x58c
jle 0x41670a
mov eax, 0x58c
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov edi, dword [esi + 0xb0]
add edx, edi
mov dword [esp + 4], edx
mov ebx, dword [esi + 4]
mov dword [esp], ebx
call sub.WSOCK32.DLL_send
sub esp, 0x10
cmp eax, 0xffffffff
jne 0x4166d4
jmp 0x415a8a
xor ecx, ecx
mov eax, 0x55e9f0
cmp word [eax], 0
je 0x41657b
inc ecx
add eax, 0xc
cmp ecx, 0x1f
jle 0x41673f
xor ebx, ebx
jmp 0x4165de
cmp ecx, 0x1f
jg 0x41661c
movzx ebx, word [ebp - 0xea]
lea eax, [ecx + ecx*2]
shl eax, 2
mov word [eax + 0x55e9f0], bx
cmp word [edi + 0x4c], 0
je 0x4165d3
mov dword [eax + 0x55e9f8], esi
jmp 0x4165d9
mov dword [esp], esi
call method.c_SpipClient.AfterSuccess__
jmp 0x4166c5
mov eax, dword [eax + 0x55e9f4]
jmp 0x4165b8