Function at 0x45a240
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x258
mov ebp, dword [esp + 0x26c]
mov dword [esp + 4], edx
mov ebx, ecx
call 0x45a25c
pop ecx
movsd xmm2, qword [ebp + 0x60]
movsd xmm1, qword [ebp + 0x58]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x68]
movd xmm0, dword [ebp + 0x24]
movsd qword [esp + 0x108], xmm2
movsd qword [esp + 0x100], xmm1
movsd xmm2, qword [ebp + 0x48]
movsd xmm1, qword [ebp + 0x50]
lea edi, [edx + edx]
mov dword [esp + 0x110], eax
movdqu xmmword [esp + 0x40], xmm0
mov dword [esp], edx
mov eax, edi
or eax, edx
movsd qword [esp + 0xf8], xmm1
movsd qword [esp + 0xf0], xmm2
js 0x45b0ff
mov esi, dword [ebp + 0x10]
test edi, edi
mov dword [esp + 0x10], ecx
je 0x45a2e8
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, edi
call fcn.0048bb80
mov ecx, dword [esp]
test eax, eax
mov dword [esp + 0x30], ecx
jne 0x45a2f5
jmp 0x45b0ff
mov eax, 1
mov dword [esp + 0x30], 0
push edi
push esi
mov dword [esp + 0x24], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
mov esi, dword [ebp + 4]
mov dword [esp + 0x50], ebx
movsd xmm1, qword [eax + 0x7c]
movq xmm0, qword [eax + 0x84]
movsd xmm2, qword [eax + 0x6c]
movsd qword [esp + 0x1ec], xmm1
movsd xmm1, qword [eax + 0x74]
mov eax, dword [ebp + 8]
movq qword [esp + 0x1f4], xmm0
movsd qword [esp + 0x1dc], xmm2
lea ebp, [esi + eax*4]
shl eax, 2
movsd qword [esp + 0x1e4], xmm1
nop word cs:[eax + eax]
nop dword [eax]
test eax, eax
je 0x45a410
movzx edi, word [esi]
add esi, 4
add eax, 0xfffffffc
cmp edi, 0xba
je 0x45a360
movzx ebx, word [esi - 2]
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 0x10
call fcn.0048bb80
test eax, eax
je 0x45b0ff
mov word [eax], di
mov edi, 1
mov word [eax + 2], bx
mov dword [esp + 0x74], 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 1
nop dword [eax + eax]
cmp esi, ebp
je 0x45a41b
movzx ebx, word [esi]
add esi, 4
cmp ebx, 0xba
je 0x45a3c0
movzx ecx, word [esi - 2]
cmp edi, dword [esp + 0x74]
je 0x45a3ec
mov word [eax + edi*4], bx
mov word [eax + edi*4 + 2], cx
inc edi
mov dword [esp + 0x7c], edi
jmp 0x45a3c0
mov word [esp + 0xc], cx
lea ecx, [esp + 0x74]
mov edx, edi
push 4
push 2
push 1
call fcn.004de540
movzx ecx, word [esp + 0x18]
add esp, 0xc
mov eax, dword [esp + 0x78]
jmp 0x45a3dc
mov eax, 2
xor edi, edi
xor ecx, ecx
jmp 0x45a423
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
movdqu xmm0, xmmword [esp + 0x40]
movsd xmm1, qword [esp + 0x1e4]
movsd xmm3, qword [esp + 0x1dc]
movsd xmm2, qword [esp + 0x1ec]
mov edx, dword [esp + 0x110]
movd dword [esp + 0x98], xmm0
movsd qword [esp + 0xa4], xmm1
movsd xmm1, qword [esp + 0x1f4]
movsd qword [esp + 0x9c], xmm3
movsd qword [esp + 0xac], xmm2
movsd xmm3, qword [esp + 0xf0]
movsd xmm2, qword [esp + 0x100]
movsd qword [esp + 0xb4], xmm1
movsd xmm1, qword [esp + 0xf8]
mov dword [esp + 0xdc], edx
movsd qword [esp + 0xbc], xmm3
movsd qword [esp + 0xcc], xmm2
mov edx, dword [esp + 0x1c]
movsd qword [esp + 0xc4], xmm1
movsd xmm1, qword [esp + 0x108]
movsd qword [esp + 0xd4], xmm1
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], ecx
mov ecx, dword [esp]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 4
mov dword [esp + 0x94], 0
call fcn.004411b0
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 4]
xor edi, edi
mov ebp, dword [esp + 0x26c]
mov dword [esi], connect
lea eax, [ecx + 0x40]
mov dword [esp + 0x94], 1
movzx edx, byte [ecx + 0x3c]
xor dl, 1
and dl, byte [ecx + 0x8c]
mov ecx, 0x24
cmovne edi, eax
mov byte [esp + 8], dl
mov dword [esp + 0x54], edi
mov edi, dword [ebp + 0x20]
mov eax, edi
mul ecx
jo 0x45b0ff
mov ebx, eax
cmp eax, 0x7ffffffd
jae 0x45b0ff
test ebx, ebx
je 0x45a5a7
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, ebx
call fcn.0048bb80
test eax, eax
mov ecx, edi
jne 0x45a5ae
jmp 0x45b0ff
mov eax, 4
xor ecx, ecx
test edi, edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x6c], 0
je 0x45a635
movzx eax, byte [0x62314d]
lea edx, [edi*4]
xor ecx, ecx
call fcn.0048bb80
test eax, eax
je 0x45b0ff
mov dword [esp + 0x58], edi
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], 0
mov eax, accept
mov ecx, 0x11
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], 1
mov dword [esp + 0x1c], 0
mov dword [esp], 0
add eax, dword [edi]
lea ebp, [edi + 0x24]
cmp eax, 0x14
cmovb ecx, eax
mov eax, dword [ecx*4 + 0x45b57c]
add eax, edx
jmp eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 2
mov dword [esp + 0x60], 0
mov dword [esp], 0
mov edx, 1
mov ebx, 1
jmp 0x45a67e
lea eax, [ebx - 1]
lea ecx, [eax + eax*8]
cmp dword [esi + ecx*4], reloc.WS2_32.dll_ioctlsocket
cmove ebx, eax
cmp edx, ebx
jae 0x45a6a4
jmp 0x45b0ff
mov ecx, dword [esp]
mov eax, edx
mov esi, dword [esp + 0x64]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x14], edi
sub eax, ebx
mov dword [esp + 0xc], eax
lea eax, [ecx + ecx*8]
mov dword [esp + 0x54], esi
lea eax, [edi + eax*4]
mov dword [esp + 0x30], eax
jne 0x45a770
mov eax, dword [esp + 0x8c]
sub eax, edx
cmp ecx, eax
ja 0x45b03c
test ecx, ecx
mov ebx, edi
mov ebp, edx
je 0x45a756
mov eax, dword [esp + 0x90]
mov ebp, edx
mov dword [esp + 8], edx
lea ecx, [ebp + ebp*8]
xor edx, edx
lea eax, [eax + ecx*4]
mov ecx, dword [esp]
shl ecx, 2
lea ecx, [ecx + ecx*8]
nop
movq xmm0, qword [edi + edx]
movsd xmm1, qword [edi + edx + 8]
movsd xmm2, qword [edi + edx + 0x10]
movsd xmm3, qword [edi + edx + 0x18]
mov esi, dword [edi + edx + 0x20]
inc ebp
mov dword [eax + edx + 0x20], esi
movsd qword [eax + edx + 0x18], xmm3
movsd qword [eax + edx + 0x10], xmm2
movsd qword [eax + edx + 8], xmm1
movq qword [eax + edx], xmm0
add edx, 0x24
cmp ecx, edx
jne 0x45a710
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 8]
mov dword [esp + 0x94], ebp
mov ecx, edx
mov eax, dword [esp + 0x40]
cmp edx, eax
jne 0x45ab6a
jmp 0x45aba4
test ecx, ecx
mov dword [esp + 8], edx
je 0x45a922
mov eax, dword [esp + 0x8c]
sub eax, edx
cmp eax, ecx
jb 0x45b0ad
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x90]
mov ebp, eax
lea ebx, [ecx*4]
add ecx, eax
lea eax, [eax + eax*8]
mov dword [esp], ecx
lea eax, [edi + eax*4]
mov ecx, dword [esp]
lea ecx, [ecx + ecx*8]
lea esi, [edi + ecx*4]
mov ecx, dword [esp + 0xc]
lea ecx, [ecx*4]
lea ecx, [ecx + ecx*8]
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [esp + 0xc]
add esp, 0xc
cmp ebp, ecx
jne 0x45a949
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
lea edx, [ebx + ebx*8]
cmp edx, 0x7ffffffd
jae 0x45b0ff
mov ebx, dword [esp + 0x30]
cmp ebx, edi
je 0x45a938
mov dword [esp + 0x20], edi
mov dword [esp], ecx
xor ecx, ecx
xor edi, edi
movzx eax, byte [0x62314d]
call fcn.0048bb80
test eax, eax
mov dword [esp + 0x18], eax
je 0x45b0ff
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, 0xffffffff
nop dword [eax]
mov esi, eax
movq xmm0, qword [ebx + edi]
movsd xmm1, qword [ebx + edi + 8]
movsd xmm2, qword [ebx + edi + 0x10]
movsd xmm3, qword [ebx + edi + 0x18]
mov eax, dword [ebx + edi + 0x20]
lea ecx, [ebx + edi + 0x24]
mov dword [edx + edi + 0x20], eax
movsd qword [edx + edi + 0x18], xmm3
movsd qword [edx + edi + 0x10], xmm2
movsd qword [edx + edi + 8], xmm1
movq qword [edx + edi], xmm0
add edi, 0x24
cmp ecx, dword [esp + 0x30]
lea eax, [esi + 1]
jne 0x45a830
mov ebx, dword [esp]
mov ecx, dword [esp + 0xc]
add esi, 2
lea edx, [ebx + ecx]
mov ecx, dword [esp + 0x8c]
sub ecx, edx
cmp ecx, eax
jbe 0x45b0df
mov edx, dword [esp + 0x90]
mov eax, ebx
add ebx, esi
lea eax, [eax + eax*8]
lea ecx, [ebx + ebx*8]
lea eax, [edx + eax*4]
mov dword [esp], edx
lea edx, [edx + ecx*4]
mov ecx, dword [esp + 0xc]
lea ecx, [ecx*4]
lea ecx, [ecx + ecx*8]
push ecx
push eax
mov dword [esp + 0xe8], edx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp ebp, ebx
mov dword [esp + 0x70], ebx
jne 0x45aa28
mov ecx, dword [esp + 0x18]
mov ebx, ecx
lea eax, [esi + esi*8]
lea eax, [ecx + eax*4]
cmp eax, ebx
je 0x45ab09
mov eax, ecx
mov ecx, 0x38e38e39
mov esi, dword [esp + 0x20]
sub eax, ebx
add eax, edi
mul ecx
mov edi, edx
shr edi, 3
nop word cs:[eax + eax]
mov ecx, ebx
call fcn.0043c5a0
add ebx, 0x24
dec edi
jne 0x45a910
jmp 0x45ab3b
mov eax, dword [esp + 0x40]
xor edx, edx
mov ecx, eax
mov ebp, eax
mov ebx, dword [esp + 0x30]
cmp ebx, edi
jne 0x45a7fd
mov edx, dword [esp + 8]
cmp edx, eax
jne 0x45ab6a
jmp 0x45aba4
lea ecx, [ebx + ebx*8]
mov ebx, dword [esp + 0x14]
lea eax, [ebp + ebp*8]
lea eax, [edi + eax*4]
nop word [eax + eax]
test ecx, ecx
je 0x45ab1b
mov edx, dword [ebx]
cmp edx, reloc.WS2_32.dll_setsockopt
je 0x45ab21
movsd xmm0, qword [ebx + 0x1c]
lea edi, [ebx + 0x24]
add ecx, 0xffffffdc
movsd qword [esp + 0x108], xmm0
movsd xmm0, qword [ebx + 0x14]
movsd qword [esp + 0x100], xmm0
movsd xmm0, qword [ebx + 4]
movsd xmm1, qword [ebx + 0xc]
mov ebx, edi
movsd qword [esp + 0xf8], xmm1
movsd qword [esp + 0xf0], xmm0
mov dword [eax], edx
movsd xmm0, qword [esp + 0xf0]
movsd xmm1, qword [esp + 0xf8]
movsd qword [eax + 4], xmm0
movsd qword [eax + 0xc], xmm1
movsd xmm0, qword [esp + 0x100]
movsd qword [eax + 0x14], xmm0
movq xmm0, qword [esp + 0x108]
movq qword [eax + 0x1c], xmm0
add eax, 0x24
mov ebp, dword [esp + 0x94]
inc ebp
cmp eax, esi
mov dword [esp + 0x94], ebp
jne 0x45a960
mov edx, dword [esp + 0x30]
mov ecx, dword [esp]
mov eax, dword [esp + 0x40]
sub edx, edi
cmp edx, 0x7ffffffd
jb 0x45a7f1
jmp 0x45b0ff
mov ecx, dword [esp]
mov edx, dword [esp + 0x18]
lea eax, [ebp + ebp*8]
lea eax, [ecx + eax*4]
lea ecx, [edx + 0x24]
mov dword [esp], ecx
mov ecx, edi
nop
mov ebx, dword [esp]
test ecx, ecx
je 0x45ab30
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx]
cmp ecx, reloc.WS2_32.dll_setsockopt
je 0x45aaf0
movsd xmm0, qword [edx + 0x1c]
inc ebp
movsd qword [esp + 0x108], xmm0
movsd xmm0, qword [edx + 0x14]
movsd qword [esp + 0x100], xmm0
movsd xmm0, qword [edx + 4]
movsd xmm1, qword [edx + 0xc]
add edx, 0x24
movsd qword [esp + 0xf8], xmm1
movsd qword [esp + 0xf0], xmm0
mov dword [eax], ecx
lea ecx, [ebx + 0x24]
movsd xmm0, qword [esp + 0xf0]
movsd xmm1, qword [esp + 0xf8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x1c]
movsd qword [eax + 4], xmm0
movsd qword [eax + 0xc], xmm1
add ecx, 0xffffffdc
movsd xmm0, qword [esp + 0x100]
movsd qword [eax + 0x14], xmm0
movq xmm0, qword [esp + 0x108]
movq qword [eax + 0x1c], xmm0
add eax, 0x24
cmp eax, dword [esp + 0xe0]
jne 0x45aa40
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x94], ebp
lea eax, [esi + esi*8]
lea eax, [ecx + eax*4]
cmp eax, ebx
jne 0x45a8f0
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
cmp esi, ebx
jne 0x45ab4b
jmp 0x45ab5e
mov ebx, dword [esp + 0x30]
jmp 0x45ab24
add ebx, 0x24
mov ecx, dword [esp]
mov edx, dword [esp + 8]
jmp 0x45a75f
mov esi, dword [esp + 0x20]
mov dword [esp + 0x94], ebp
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
cmp esi, ebx
je 0x45ab5e
push ecx
push 0
push dword [0x623140]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 8]
cmp edx, eax
je 0x45aba4
mov esi, dword [esp + 0xc]
cmp ecx, ebp
je 0x45ab9b
mov eax, dword [esp + 0x90]
lea ecx, [ecx + ecx*8]
lea edx, [ebp + ebp*8]
lea ecx, [eax + ecx*4]
lea eax, [eax + edx*4]
lea edx, [esi*4]
lea edx, [edx + edx*8]
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
add ebp, esi
mov dword [esp + 0x94], ebp
mov esi, dword [esp + 0x30]
mov ecx, 0x38e38e39
mov eax, esi
sub eax, ebx
mul ecx
cmp esi, ebx
je 0x45abcd
mov edi, edx
shr edi, 3
nop dword [eax]
mov ecx, ebx
call fcn.0043c5a0
add ebx, 0x24
dec edi
jne 0x45abc0
cmp dword [esp + 0x54], 0
je 0x45abe6
push dword [esp + 0x14]
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test ebp, ebp
je 0x45ac40
mov edi, dword [esp + 0x90]
movzx eax, byte [0x62314d]
lea edx, [ebp*4]
xor ecx, ecx
xor ebx, ebx
call fcn.0048bb80
test eax, eax
je 0x45b0ff
mov esi, eax
add edi, 0x10
mov eax, accept
mov ecx, 0x11
mov edx, 0xb
add eax, dword [edi - 0x10]
movd xmm0, edx
mov edx, dword [esp + 0x10]
cmp eax, 0x14
cmovb ecx, eax
mov ecx, dword [ecx*4 + 0x45b6a0]
add ecx, edx
jmp ecx
mov esi, 2
mov ebx, dword [esp + 4]
cmp dword [ebx + 0x1c], 0
je 0x45ac60
push dword [ebx + 0x20]
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x274]
mov dword [ebx + 0x1c], ebp
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], ebp
mov edx, dword [eax + 8]
test edx, edx
je 0x45ad34
lea eax, [esp + 0xf0]
lea esi, [esp + 0x74]
mov ecx, 0x1b
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x15c], 1
lea ecx, [esp + 0x1dc]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.0045b8b0
add esp, 0xc
mov edi, dword [ebx + 0x60]
lea esi, [ebx + 0x60]
test edi, edi
je 0x45ace8
mov eax, dword [esp + 4]
mov ebx, dword [eax + 0x64]
mov eax, dword [ebx]
test eax, eax
je 0x45acca
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x45ace8
cmp dword [ebx + 8], 9
jb 0x45acd9
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x1e4]
movq xmm0, qword [esp + 0x1dc]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xf0]
movq qword [esi], xmm0
cmp eax, 0x80000016
setge cl
cmp eax, reloc.WS2_32.dll_accept
sete al
or al, cl
je 0x45b0ff
lea edi, [esp + 0x74]
lea esi, [esp + 0xf0]
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 4]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x74]
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 1
mov dword [esp + 0xf8], 0
lea edx, [esp + 0xf0]
push eax
call fcn.0043d960
add esp, 4
mov eax, dword [esp + 0xf8]
movzx edx, byte [ebx + 0x8e]
mov ecx, 0
movq xmm0, qword [esp + 0xf0]
mov dword [esp + 0x2c], eax
xor eax, eax
cmp dl, 1
movq qword [esp + 0x24], xmm0
sbb ecx, ecx
or cl, dl
cmp byte [ebx + 0x3c], 0
je 0x45adaa
movzx eax, cl
add eax, 9
jmp 0x45adb6
sub cl, byte [ebx + 0x48]
movzx ecx, cl
cmovb ecx, eax
movzx eax, cl
mov ebx, dword [esp + 0x2c]
mov edi, 1
lea ebp, [eax + ebx - 1]
and ebp, 0x1f
mov esi, ebp
xor esi, 0x1f
cmp ebp, 0x1f
je 0x45ade6
mov ecx, 8
mov edx, esi
call fcn.0048bb80
test eax, eax
je 0x45b0ff
mov edi, eax
mov eax, dword [esp + 0x24]
sub eax, ebx
cmp eax, esi
jb 0x45b020
mov eax, dword [esp + 0x28]
add eax, ebx
push esi
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, ebx
cmp ebp, 0x1f
mov dword [esp + 0x2c], esi
je 0x45ae1f
push edi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
cmp dword [esp + 0x270], 0
lea ebx, [esp + 0xf0]
lea esi, [esp + 0x74]
mov ecx, 0x1b
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 1
mov byte [esp + 0x15c], 1
mov dword [esp + 0xec], 0
setne al
lea ebp, [eax + eax + 2]
sub esp, 4
lea edx, [esp + 0xe8]
mov ecx, ebx
push connect
call fcn.00448990
add esp, 8
mov eax, dword [esp + 0xec]
movsd xmm0, qword [esp + 0xe4]
lea edi, [esp + 0x1e8]
mov ecx, 0x1c
mov esi, ebx
mov dword [esp + 0x1e4], eax
movsd qword [esp + 0x1dc], xmm0
mov eax, 1
rep movsd dword es:[edi], dword [esi]
mov word [esp + 0x16c], bp
lea edi, [esp + 0xf0]
lea esi, [esp + 0x1dc]
mov ecx, 0x1f
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0xf0]
lea ecx, [ebx + 0x7fffffff]
cmp ecx, 5
cmovb eax, ecx
cmp eax, 2
je 0x45af6d
cmp eax, 1
jne 0x45afcd
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
mov eax, dword [ecx]
mov esi, dword [ecx + 8]
sub eax, esi
cmp eax, ebp
jb 0x45b069
mov edi, dword [esp + 4]
mov dword [esp + 0x10], edx
mov eax, dword [edi + 4]
add eax, esi
push ebp
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x24]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
add esi, ebp
mov ebp, dword [esp + 0x10]
mov dword [edi + 8], esi
movsd qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [esp + 0xfc]
call fcn.004490d0
test ebx, 0x7fffffff
je 0x45b015
jmp 0x45b006
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0xfc]
mov edx, dword [esp + 0xf8]
mov eax, dword [ecx]
mov esi, dword [ecx + 8]
sub eax, esi
cmp eax, ebx
jb 0x45b08c
mov edi, dword [esp + 4]
mov eax, dword [edi + 4]
add eax, esi
push ebx
push edx
push eax
mov ebp, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, ebx
test dword [esp + 0xf4], 0x7fffffff
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x24]
mov dword [edi + 8], esi
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
je 0x45b015
jmp 0x45b006
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x24]
cmp ebx, reloc.WS2_32.dll_accept
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
je 0x45b015
cmp ebx, reloc.WS2_32.dll_connect
je 0x45b015
test dword [esp + 0xf4], 0x7fffffff
je 0x45b015
mov ebp, dword [esp + 0xf8]
push ebp
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
add esp, 0x258
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x24]
mov edx, ebx
push 1
push 1
push esi
call fcn.004de540
add esp, 0xc
mov ebx, dword [esp + 0x2c]
jmp 0x45adf4
mov eax, ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 8], edx
push 0x24
push 4
push eax
call fcn.004de540
add esp, 0xc
mov eax, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
jmp 0x45a6fc
mov ecx, dword [esp + 4]
mov edi, edx
mov edx, esi
push 1
push 1
push ebp
call fcn.004de540
mov edx, edi
add esp, 0xc
mov eax, dword [esp + 4]
mov esi, dword [eax + 8]
jmp 0x45af1a
mov ebp, dword [esp + 4]
mov edi, edx
mov edx, esi
mov ecx, ebp
push 1
push 1
push ebx
call fcn.004de540
mov edx, edi
add esp, 0xc
mov esi, dword [ebp + 8]
jmp 0x45af8e
lea ecx, [esp + 0x8c]
push 0x24
push 4
push dword [esp + 8]
call fcn.004de540
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x40]
jmp 0x45a79a
lea ecx, [esp + 0x8c]
push 0x24
push 4
push esi
call fcn.004de540
add esp, 0xc
mov ebp, dword [esp + 0x94]
jmp 0x45a896
ud2