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

Disassembly:
push 0xffffffffffffffff
push 0x436e30
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push esi
push edi
mov edi, dword [0x4394e8]
push 0
mov esi, ecx
mov eax, dword [esi + 0x324]
push 0
push 0x1009
push eax
mov dword [esp + 0x24], esi
call edi
mov ecx, dword [esi + 0x324]
push 0x64
push 1
push 0x101e
push ecx
call edi
lea edi, [esi + 0x1d4]
push 0
mov ecx, edi
call fcn.00407700
push eax
mov ecx, edi
call fcn.00407770
test eax, eax
je 0x4058e2
mov ecx, eax
call fcn.0040af60
mov ebx, eax
inc ebx
jmp 0x4058e4
xor ebx, ebx
mov ecx, edi
call fcn.00407700
push eax
mov ecx, edi
call fcn.00407740
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
lea ecx, [esi + 0x370]
xor edi, edi
call fcn.00402f20
test eax, eax
je 0x405917
mov edi, dword [eax + 4]
test ebx, ebx
jbe 0x405e93
test edi, edi
je 0x405e93
push ebx
mov ecx, edi
call fcn.00403100
mov edi, eax
test edi, edi
je 0x405e93
lea ecx, [esp + 0x34]
call fcn.004033d0
mov eax, dword [edi + 0x14]
mov edi, dword [edi + 0x18]
lea ecx, [esp + 0x34]
push ecx
push eax
push edi
lea ecx, [esi + 0x368]
mov dword [esp + 0x84], 0
call fcn.00411080
lea edx, [esp + 0x1c]
push 0x43a8dc
push edx
call fcn.00401c10
add esp, 8
mov eax, dword [eax]
push 0
push 0
push 0
push 0
push eax
push 0
add esi, 0x308
push 1
mov ecx, esi
mov byte [esp + 0x94], 1
call fcn.0042855a
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x78], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4059be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x6c]
test al, 1
je 0x4059cd
mov eax, 0x43a8c8
jmp 0x4059e9
test eax, 0x10020
je 0x4059db
mov eax, 0x43a8b0
jmp 0x4059e9
test eax, eax
mov eax, 0x43a8c8
jne 0x4059e9
mov eax, 0x43a89c
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00401c10
add esp, 8
mov eax, dword [eax]
push eax
push 1
push 0
mov ecx, esi
mov byte [esp + 0x84], 2
call fcn.004284b8
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x78], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405a30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x1c]
push 0x43a888
push eax
call fcn.00401c10
add esp, 8
mov eax, dword [eax]
push 0
push 0
push 0
push 0
push eax
push 1
push 1
mov ecx, esi
mov byte [esp + 0x94], 3
call fcn.0042855a
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x78], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405a83
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x34]
push eax
push 1
push 1
mov ecx, esi
call fcn.004284b8
lea ecx, [esp + 0x1c]
push 0x43a874
push ecx
call fcn.00401c10
add esp, 8
mov eax, dword [eax]
push 0
push 0
push 0
push 0
push eax
push 2
push 1
mov ecx, esi
mov byte [esp + 0x94], 4
call fcn.0042855a
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x78], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x405ae6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x38]
push ebp
push eax
push 1
push 2
mov ecx, esi
call fcn.004284b8
call fcn.0042eb3e
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x7c], 5
call fcn.0042eb3e
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
lea ecx, [esp + 0x20]
push 0x43a868
push ecx
mov byte [esp + 0x84], 6
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ebp
call fcn.00401c10
movzx ecx, word [esp + 0x3a]
movzx edx, bx
push edx
push ecx
movzx ecx, word [esp + 0x3e]
movzx edx, bp
push edx
movzx edx, word [esp + 0x3e]
push ecx
push edx
mov edx, dword [eax]
movzx ecx, di
push ecx
push edx
lea eax, [esp + 0x34]
push 0x43a844
push eax
mov byte [esp + 0xa8], 7
call fcn.00401d00
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
add esp, 0x2c
mov byte [esp + 0x7c], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405bb3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
call fcn.00403d90
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
lea edx, [esp + 0x20]
push 0x43a838
push edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ebx
call fcn.00401c10
movzx edx, word [esp + 0x3a]
mov eax, dword [eax]
movzx ecx, bp
push ecx
push edx
movzx edx, word [esp + 0x3e]
movzx ecx, bx
push ecx
movzx ecx, word [esp + 0x3e]
push edx
push ecx
movzx edx, di
push edx
push eax
lea ecx, [esp + 0x34]
push 0x43a814
push ecx
mov byte [esp + 0xa8], 8
call fcn.00401d00
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
add esp, 0x2c
mov byte [esp + 0x7c], 6
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x405c4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00403d00
lea eax, [esp + 0x20]
push 0x43a800
push eax
call fcn.00401c10
add esp, 8
mov eax, dword [eax]
push 0
push 0
push 0
push 0
push eax
push 3
push 1
mov ecx, esi
mov byte [esp + 0x98], 9
call fcn.0042855a
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x7c], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405caf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
push eax
push 1
push 3
mov ecx, esi
call fcn.004284b8
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x324]
xor ebx, ebx
push ebx
push ebx
push 0x1004
push edx
call dword [0x4394e8]
mov dword [esp + 0x20], eax
call fcn.0042eb3e
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x20]
xor ebp, ebp
test eax, eax
mov byte [esp + 0x7c], 0xa
jle 0x405d70
nop
push 1
push ebp
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00428746
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x80], 0xb
call fcn.00403d90
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x7c], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405d44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x324]
push edi
push 0
push 0x1011
push ecx
call dword [0x4394e8]
cmp eax, ebx
jle 0x405d67
mov ebx, eax
mov eax, dword [esp + 0x20]
inc ebp
cmp ebp, eax
jl 0x405d00
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x324]
add ebx, 0x14
movzx edx, bx
push edx
push 1
push 0x101e
push ecx
call dword [0x4394e8]
add edi, 0xfffffff0
mov byte [esp + 0x7c], 6
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
pop ebp
jg 0x405daf
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov byte [esp + 0x78], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405dd2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x78], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405df5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov dword [esp + 0x78], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405e1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405e39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405e57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405e75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405e93
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x70
ret