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

Disassembly:
push 0xffffffffffffffff
push 0x43aba2
mov eax, dword fs:[0]
push eax
sub esp, 0xc74
mov eax, dword [0x445654]
xor eax, esp
mov dword [esp + 0xc70], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x445654]
xor eax, esp
push eax
lea eax, [esp + 0xc88]
mov dword fs:[0], eax
mov edi, dword [esp + 0xc98]
mov ebp, dword [esp + 0xc9c]
xor ebx, ebx
test byte [0x4469a8], 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
jne 0x40606b
or dword [0x4469a8], 1
push ebx
push 1
push 0x43e56c
mov dword [esp + 0xc9c], ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
push eax
mov ecx, 0x4469a4
call fcn.00405560
push 0x43ae50
call fcn.0041305e
add esp, 4
mov dword [esp + 0xc90], 0xffffffff
cmp dword [edi + 0x48], ebx
jne 0x406079
cmp dword [edi + 0x4c], ebx
jne 0x40673b
mov esi, dword [ebp]
mov byte [esp + 0x1b], 0
mov dword [esp + 0x1c], ebx
cmp esi, ebx
je 0x40608d
mov eax, dword [esi]
jmp 0x40608f
xor eax, eax
mov ecx, str.TcpIp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4060ba
cmp dx, bx
je 0x4060b6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4060ba
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x406094
xor eax, eax
jmp 0x4060bf
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x40619b
cmp esi, ebx
je 0x4060cf
mov eax, dword [esi]
jmp 0x4060d1
xor eax, eax
mov ecx, str.UdpIp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4060fc
cmp dx, bx
je 0x4060f8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4060fc
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x4060d6
xor eax, eax
jmp 0x406101
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x40619b
cmp esi, ebx
je 0x406111
mov eax, dword [esi]
jmp 0x406113
xor eax, eax
mov ecx, str.MSNT_TcpIpInformation
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40613e
cmp dx, bx
je 0x40613a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40613e
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x406118
xor eax, eax
jmp 0x406143
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x40619b
cmp esi, ebx
je 0x40614f
mov eax, dword [esi]
jmp 0x406151
xor eax, eax
mov ecx, str.StackWalk
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40617c
cmp dx, bx
je 0x406178
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40617c
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x406156
xor eax, eax
jmp 0x406181
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x406287
mov eax, dword [edi + 0x4c]
sub eax, 0x10
sar eax, 2
mov byte [esp + 0x1b], 1
mov dword [esp + 0x1c], eax
push 0x48
lea eax, [esp + 0x34]
push ebx
push eax
mov dword [esp + 0x38], ebx
call fcn.00412350
push 0x400
lea ecx, [esp + 0x8c]
push ebx
push ecx
mov dword [esp + 0x90], ebx
call fcn.00412350
add esp, 0x18
xor eax, eax
mov dword [esp + 0x47c], eax
mov dword [esp + 0xc90], 1
mov dword [esp + 0x480], eax
mov dword [esp + 0x47c], ebx
mov dword [esp + 0x44], ebx
cmp byte [esp + 0x1b], al
jne 0x406402
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov eax, ecx
inc eax
neg eax
sbb eax, eax
and eax, ecx
xor ecx, ecx
mov dword [esp + 0x30], eax
xor eax, eax
mov word [esp + 0x76], cx
lea ecx, [esp + 0x78]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], 1
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov word [esp + 0x74], ax
call fcn.00402bc0
push 0xc
call fcn.004115fa
add esp, 4
mov esi, eax
cmp esi, ebx
je 0x406311
push ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
jmp 0x406313
cmp esi, ebx
je 0x40628f
mov eax, dword [esi]
jmp 0x406291
xor eax, eax
mov ecx, 0x43b7e8
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4062bc
cmp dx, bx
je 0x4062b8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4062bc
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x406296
xor eax, eax
jmp 0x4062c1
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x40673b
cmp esi, ebx
je 0x4062d1
mov eax, dword [esi]
jmp 0x4062d3
xor eax, eax
mov ecx, 0x43e500
jmp 0x4062e0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40673b
cmp dx, bx
je 0x40630a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40673b
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x4062e0
xor eax, eax
jmp 0x40673b
xor esi, esi
mov byte [esp + 0xc90], 1
mov dword [esp + 0x78], esi
cmp esi, ebx
jne 0x40632d
push 0x8007000e
call fcn.00410620
mov edx, dword [edi + 0x2c]
add edx, dword [edi + 0x28]
push ebx
push edx
mov ecx, 0x4469c0
call fcn.004052f0
mov dword [esp + 0x3c], eax
mov eax, dword [ebp]
mov dword [esp + 0x40], edx
cmp eax, ebx
je 0x406352
mov eax, dword [eax]
jmp 0x406354
xor eax, eax
push 3
push 0x43e4f8
push eax
call fcn.00412e91
add esp, 0xc
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x34]
cmp eax, ebx
je 0x4063e5
mov eax, dword [eax]
cmp eax, ebx
je 0x4063e5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
cmp eax, ebx
je 0x4063e5
mov edi, dword [ebp + 0x34]
mov dword [esp + 0x34], ebx
xor esi, esi
cmp edi, ebx
je 0x406398
mov eax, dword [edi]
jmp 0x40639a
xor eax, eax
mov ecx, dword [esi*8 + 0x43e438]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4063c7
cmp dx, bx
je 0x4063c3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4063c7
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x4063a1
xor eax, eax
jmp 0x4063cc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4063d8
inc esi
cmp esi, 0x18
jb 0x406390
jmp 0x406402
mov eax, dword [esi*8 + 0x43e43c]
mov dword [esp + 0x34], eax
jmp 0x406402
mov al, byte [edi + 4]
cmp al, 0xb
jne 0x4063f6
mov dword [esp + 0x34], 3
jmp 0x406402
xor ecx, ecx
cmp al, 0xa
sete cl
inc ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x2c]
mov esi, dword [edx + 0x48]
mov ebx, dword [eax]
mov ebp, dword [ecx + 0x18]
mov edi, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x18]
test ebp, ebp
je 0x406423
cmp ebp, eax
je 0x406428
call fcn.00411c1e
cmp ebx, edi
je 0x406663
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x4c]
add ecx, dword [eax + 0x48]
cmp esi, ecx
jae 0x406663
test ebp, ebp
jne 0x406471
call fcn.00411c1e
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x406457
call fcn.00411c1e
mov edi, dword [ebx + 8]
mov eax, dword [edi + 4]
inc eax
cmp eax, 0x2c
ja case.0x40646a.0
movzx edx, byte [eax + 0x40678c]
jmp dword [edx*4 + 0x406764]
mov eax, dword [ebp]
jmp 0x40644d
mov ecx, edi
call fcn.00401fc0
push eax
call fcn.004053c0
mov dword [edi + 4], eax
inc eax
add esp, 4
cmp eax, 0x2c
jbe 0x406463
mov eax, dword [esp + 0x20]
xor ecx, ecx
push 0x400
mov word [esp + 0x488], cx
mov ecx, dword [eax + 0x4c]
add ecx, dword [eax + 0x48]
lea edx, [esp + 0x488]
push edx
push edi
push ecx
push esi
call fcn.00405930
add esp, 0x14
add esi, eax
cmp byte [esp + 0x1b], 0
jne 0x406522
push edi
lea ecx, [esp + 0x7c]
call fcn.00405820
push 0x4469a4
lea ecx, [esp + 0x7c]
call fcn.00405820
lea edx, [esp + 0x484]
push edx
lea ecx, [esp + 0x2c]
call fcn.00401f10
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0xc94], 3
call fcn.00405820
lea ecx, [esp + 0x28]
mov byte [esp + 0xc90], 1
call fcn.00402e70
push 0x4469a4
lea ecx, [esp + 0x7c]
call fcn.00405820
test ebp, ebp
jne 0x40665b
call fcn.00411c1e
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x40653b
call fcn.00411c1e
mov ebx, dword [ebx]
mov ecx, dword [esp + 0x24]
jmp 0x406415
cmp dword [edi + 8], 0x1b
jne 0x406571
mov byte [esp + 0x60], 1
mov eax, dword [esi]
mov dword [esp + 0x64], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ecx
mov edx, dword [esi + 8]
mov dword [esp + 0x6c], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x70], eax
add esi, 0x10
jmp 0x406522
mov byte [esp + 0x60], 0
mov ecx, dword [esi]
mov dword [esp + 0x64], ecx
add esi, 4
jmp 0x406522
cmp dword [edi + 8], 0x1b
jne 0x4065af
mov byte [esp + 0x4c], 1
mov edx, dword [esi]
mov dword [esp + 0x50], edx
mov eax, dword [esi + 4]
mov dword [esp + 0x54], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x58], ecx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x5c], edx
add esi, 0x10
jmp 0x406522
mov byte [esp + 0x4c], 0
mov eax, dword [esi]
mov dword [esp + 0x50], eax
add esi, 4
jmp 0x406522
movzx ecx, word [esi]
push ecx
call sub.WS2_32.dll_ntohs
mov word [esp + 0x76], ax
add esi, 2
jmp 0x406522
movzx edx, word [esi]
push edx
call sub.WS2_32.dll_ntohs
mov word [esp + 0x74], ax
add esi, 2
jmp 0x406522
mov eax, dword [esi]
mov dword [esp + 0x48], eax
add esi, 4
jmp 0x406522
mov ecx, dword [esi]
mov dword [esp + 0x2c], ecx
add esi, 4
jmp 0x406522
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x47c]
lea edx, [eax + edi]
cmp edx, 0x100
jbe 0x406627
mov edi, 0x100
sub edi, eax
lea ecx, [edi*4]
push ecx
lea edx, [esp + eax*4 + 0x80]
push esi
push edx
call fcn.00412560
mov eax, dword [esp + 0x28]
add esp, 0xc
add dword [esp + 0x47c], edi
lea esi, [esi + eax*4]
jmp 0x406522
add esi, 8
jmp 0x406522
mov eax, dword [ebp]
jmp 0x406531
cmp byte [esp + 0x1b], 0
jne 0x4066fb
push 0x4469a4
lea ecx, [esp + 0x7c]
call fcn.00405820
cmp dword [esp + 0x44], 2
jne 0x4066ee
cmp dword [esp + 0x34], 3
jne 0x4066ee
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
movzx ebp, word [esp + 0x76]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x70], ebx
mov bx, word [esp + 0x74]
mov word [esp + 0x76], bx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edi
mov word [esp + 0x74], bp
lea ecx, [esp + 0x2c]
push ecx
call fcn.0040abd0
add esp, 4
mov esi, dword [esp + 0x78]
test esi, esi
je 0x40673b
lea edx, [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x40673b
test esi, esi
je 0x40673b
mov eax, dword [esi]
test eax, eax
je 0x406722
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x406732
push eax
call fcn.004114fa
add esp, 4
push esi
call fcn.004114fa
add esp, 4
mov ecx, dword [esp + 0xc88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc70]
xor ecx, esp
call fcn.00411a73
add esp, 0xc80
ret