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

Disassembly:
push 0xffffffffffffffff
push 0x48fcf8
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
mov eax, dword [0x4ad650]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x74]
lea esi, [edi + 0x128]
lea edx, [esp + 0x54]
lea ecx, [esi + 4]
push edx
mov dword [esi + 0x24], eax
call fcn.00405ba0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x60]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x70]
mov dword [esi + 8], ecx
lea ecx, [esp + 0x50]
mov dword [esi + 0x10], edx
mov edx, dword [esp + 0x64]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, esi
mov dword [esi + 0x14], edx
mov dword [esi + 0x18], eax
call fcn.00405ba0
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x4c]
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], eax
mov dword [edi + 0x158], ecx
call fcn.00454183
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4071a6
push 0x80004005
call fcn.00406520
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
mov byte [esp + 0x48], 1
call fcn.00435210
add esp, 4
push edi
lea ecx, [esp + 0x28]
call fcn.00453606
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x4c], 2
call fcn.00405ae0
cmp dword [esp + 0x1c], 0xf0
jle 0x4072bd
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx - 0xc]
cmp esi, 5
jle 0x40725c
push esi
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x18]
call fcn.00408950
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00405ae0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
cmp dword [esp + 0x1c], 0xf0
jl 0x4072f0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407256
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
dec esi
cmp esi, 5
jg 0x407206
mov esi, dword [esp + 0x4c]
push esi
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00408950
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x48], 3
call fcn.00405ba0
mov byte [esp + 0x44], 2
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4072a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
lea ebx, [esp + 0x10]
call fcn.004088d0
inc esi
mov eax, esi
call fcn.004088d0
mov eax, esi
call fcn.004088d0
mov edx, dword [edi + 0x168]
mov edx, dword [edx + 0x14c]
lea ecx, [edi + 0x168]
lea eax, [esp + 0x10]
push eax
call edx
call fcn.00454183
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x407312
push 0x80004005
call fcn.00406520
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407260
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x407260
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xc], eax
mov byte [esp + 0x44], 4
mov eax, dword [edi + 0x154]
cmp eax, 0xa
ja case.0x407336.7
jmp dword [eax*4 + 0x4076b8]
push 0x1019
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x1019
jmp 0x407413
cmp dword [edi + 0x150], 0
je case.0x407336.0
push 0x101a
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x101a
jmp 0x407413
push 0x101b
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x101b
jmp 0x407413
push 0x101c
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x101c
jmp 0x407413
push 0x101d
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x101d
jmp 0x407413
push 0x101e
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x101e
jmp 0x407413
push 0x101f
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x101f
jmp 0x407413
push 0x1020
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x1020
jmp 0x407413
push 0x1021
call fcn.0045bffd
test eax, eax
je 0x40741d
push 0x1021
push eax
lea ecx, [esp + 0x14]
call fcn.00405e60
mov edx, dword [edi + 0x274]
mov edx, dword [edx + 0x14c]
lea ecx, [edi + 0x274]
lea eax, [esp + 0xc]
push eax
call edx
push 0x499064
lea ecx, [esp + 0x18]
call fcn.00406140
mov bl, 5
mov byte [esp + 0x44], bl
call fcn.00454183
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x407464
push 0x80004005
call fcn.00406520
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x4c], esi
mov byte [esp + 0x44], 6
mov ecx, dword [esp + 0x5c]
push ecx
lea edx, [esp + 0x18]
push 0x499300
push edx
call fcn.004065f0
mov eax, dword [esp + 0x6c]
lea ecx, [eax - 0x1338]
add esp, 0xc
cmp ecx, 0x437
ja 0x4074b7
push 0x1024
call fcn.0045bffd
test eax, eax
je 0x4074e2
push 0x1024
jmp 0x4074d4
add eax, 0xfffff694
cmp eax, 0x48
ja 0x4074f0
push 0x1023
call fcn.0045bffd
test eax, eax
je 0x4074e2
push 0x1023
push eax
lea ecx, [esp + 0x54]
call fcn.00405e60
mov esi, dword [esp + 0x4c]
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x1c]
call fcn.004059f0
mov edx, dword [edi + 0x380]
mov edx, dword [edx + 0x14c]
lea ecx, [edi + 0x380]
lea eax, [esp + 0x14]
push eax
call edx
cmp dword [edi + 0x130], 1
jne 0x407538
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x498db0
call fcn.00406140
push 0x16d
call fcn.004337d0
add esp, 8
mov dword [edi + 0xa4], eax
jmp 0x407582
mov eax, dword [edi + 0x140]
test eax, eax
jbe 0x407563
cmp eax, 0x64
ja 0x407568
lea ecx, [eax - 1]
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov edx, dword [edi + edx*4 + 0x8c]
mov dword [edi + 0xa4], edx
jmp 0x407582
cmp eax, 0x64
jbe 0x407576
mov eax, dword [edi + 0x9c]
mov dword [edi + 0xa4], eax
jmp 0x407582
mov ecx, dword [edi + 0x8c]
mov dword [edi + 0xa4], ecx
cmp dword [edi + 0x14c], 0
push 0
jne 0x40759d
mov edx, dword [edi + 0x4ac]
push 0
push 0xf1
push edx
jmp 0x4075ab
mov eax, dword [edi + 0x4ac]
push 1
push 0xf1
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov ecx, edi
call fcn.00457327
lea eax, [esi - 0x10]
mov byte [esp + 0x44], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4075da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4075ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 2
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407624
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x44], 1
call fcn.0045365a
mov byte [esp + 0x44], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407657
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x44], 0xffffffff
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40767f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40769f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x3c
ret 0x34