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

Disassembly:
push 0xffffffffffffffff
push 0x44903f
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x45e480]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45e480]
xor eax, esp
push eax
lea eax, [esp + 0xf4]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x104]
mov ecx, dword [ebp + 0x84]
sub ecx, dword [ebp + 0x80]
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov eax, edx
xor ebx, ebx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], ebx
je 0x40711c
mov dword [esp + 0x20], ebx
nop
mov ecx, dword [ebp + 0x84]
sub ecx, dword [ebp + 0x80]
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x406b28
call fcn.00431010
mov edx, dword [ebp + 0x80]
mov eax, dword [esp + 0x20]
cmp byte [edx + eax + 0x38], bl
jne 0x4070e9
mov ecx, dword [ebp + 0x84]
sub ecx, edx
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x406b60
call fcn.00431010
mov eax, dword [ebp + 0x80]
add eax, dword [esp + 0x20]
push 0xffffffffffffffff
push ebx
mov esi, 0xf
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
call fcn.00402740
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
lea ebx, [esp + 0x60]
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 3
call fcn.00401b60
lea ebx, [esp + 0x44]
lea ecx, [esp + 0xd0]
call fcn.00401a50
lea ebx, [esp + 0x7c]
lea ecx, [esp + 0xd0]
call fcn.00401c70
push 1
lea edx, [esp + 0x1c]
push edx
or ecx, 0xffffffff
lea edi, [esp + 0x4c]
mov byte [esp + 0x20], 0x2e
call fcn.00402a10
cmp eax, 0xffffffff
je 0x406c28
mov edi, eax
lea esi, [esp + 0x44]
call fcn.004078f0
push 4
call fcn.00413f1a
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x406c40
lea ecx, [esp + 0x2c]
mov dword [eax], ecx
jmp 0x406c42
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov byte [esp + 0xfc], 5
mov ecx, dword [esp + 0x48]
mov esi, 0x10
cmp dword [esp + 0x5c], esi
jae 0x406c6d
lea ecx, [esp + 0x48]
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x78], esi
jae 0x406c7b
lea eax, [esp + 0x64]
push ebx
lea edx, [esp + 0x30]
push edx
push eax
call fcn.00403950
mov eax, dword [esp + 0x8c]
add esp, 0xc
cmp dword [esp + 0x94], esi
jae 0x406ca1
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x30]
call fcn.00401e60
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add esp, 4
add eax, edx
je 0x407148
mov dword [esp + 0x24], ebx
cmp eax, ebx
jbe 0x406e58
mov dword [esp + 0x28], ebx
cmp ebx, eax
jb 0x406cf0
call fcn.00431010
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
push 0xffffffffffffffff
add eax, esi
push ebx
mov esi, 0xf
push eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd8], esi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
call fcn.00402740
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
mov byte [esp + 0xfc], 7
mov ecx, dword [esp + 0xb8]
mov edi, 0x10
cmp dword [esp + 0xcc], edi
jae 0x406d59
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x98]
call fcn.00405000
test al, al
je 0x406dd3
mov ecx, dword [ebp + 0x84]
sub ecx, dword [ebp + 0x80]
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x406d91
call fcn.00431010
mov eax, dword [ebp + 0x80]
mov esi, dword [esp + 0x20]
add eax, esi
cmp dword [eax + 0x34], edi
jb 0x406da7
mov eax, dword [eax + 0x20]
jmp 0x406daa
add eax, 0x20
mov ecx, dword [esp + 0x9c]
cmp dword [esp + 0xb0], edi
jae 0x406dc1
lea ecx, [esp + 0x9c]
push eax
push ecx
call fcn.0043ebf4
add esp, 8
test eax, eax
je 0x406f49
cmp dword [esp + 0xb0], edi
jb 0x406dec
mov edx, dword [esp + 0x9c]
push edx
call fcn.00413f54
add esp, 4
mov byte [esp + 0xfc], 5
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
cmp dword [esp + 0xcc], edi
jb 0x406e26
mov eax, dword [esp + 0xb8]
push eax
call fcn.00413f54
add esp, 4
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
inc dword [esp + 0x24]
add dword [esp + 0x28], 0x1c
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x24], eax
jb 0x406cf0
cmp esi, ebx
je 0x406e97
cmp esi, edi
je 0x406e8e
add esi, 0x18
cmp dword [esi], 0x10
jb 0x406e74
mov edx, dword [esi - 0x14]
push edx
call fcn.00413f54
add esp, 4
mov dword [esi], 0xf
mov dword [esi - 4], ebx
mov byte [esi - 0x14], bl
add esi, 0x1c
lea eax, [esi - 0x18]
cmp eax, edi
jne 0x406e63
mov esi, dword [esp + 0x38]
push esi
call fcn.00413f54
add esp, 4
mov ecx, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.00413f54
mov esi, 0x10
add esp, 4
cmp dword [esp + 0x94], esi
jb 0x406ece
mov edx, dword [esp + 0x80]
push edx
call fcn.00413f54
add esp, 4
mov edi, 0xf
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
cmp dword [esp + 0x5c], esi
jb 0x406efb
mov eax, dword [esp + 0x48]
push eax
call fcn.00413f54
add esp, 4
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
cmp dword [esp + 0x78], esi
jb 0x406f1a
mov ecx, dword [esp + 0x64]
push ecx
call fcn.00413f54
add esp, 4
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
cmp dword [esp + 0xe8], esi
jb 0x406f3f
mov edx, dword [esp + 0xd4]
push edx
call fcn.00413f54
add esp, 4
mov eax, 5
jmp 0x40711e
mov ecx, dword [ebp + 0x84]
sub ecx, dword [ebp + 0x80]
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x406f71
call fcn.00431010
mov ecx, dword [ebp + 0x80]
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0xbc]
add ecx, esi
push edx
call fcn.00402740
cmp dword [esp + 0xb0], edi
jb 0x406fa2
mov eax, dword [esp + 0x9c]
push eax
call fcn.00413f54
add esp, 4
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
cmp dword [esp + 0xcc], edi
jb 0x406fd4
mov ecx, dword [esp + 0xb8]
push ecx
call fcn.00413f54
add esp, 4
mov esi, dword [esp + 0x38]
mov dword [esp + 0xcc], 0xf
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
cmp esi, ebx
je 0x407039
mov edi, dword [esp + 0x3c]
cmp esi, edi
je 0x40702b
add esi, 0x18
cmp dword [esi], 0x10
jb 0x407011
mov eax, dword [esi - 0x14]
push eax
call fcn.00413f54
add esp, 4
mov dword [esi], 0xf
mov dword [esi - 4], ebx
mov byte [esi - 0x14], bl
add esi, 0x1c
lea edx, [esi - 0x18]
cmp edx, edi
jne 0x407000
mov esi, dword [esp + 0x38]
push esi
call fcn.00413f54
add esp, 4
mov edi, 0x10
mov eax, dword [esp + 0x2c]
push eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.00413f54
add esp, 4
cmp dword [esp + 0x94], edi
jb 0x40706b
mov ecx, dword [esp + 0x80]
push ecx
call fcn.00413f54
add esp, 4
mov esi, 0xf
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
cmp dword [esp + 0x5c], edi
jb 0x407098
mov edx, dword [esp + 0x48]
push edx
call fcn.00413f54
add esp, 4
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
cmp dword [esp + 0x78], edi
jb 0x4070b7
mov eax, dword [esp + 0x64]
push eax
call fcn.00413f54
add esp, 4
mov dword [esp + 0xfc], 0xffffffff
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
cmp dword [esp + 0xe8], edi
jb 0x4070e7
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.00413f54
add esp, 4
xor ebx, ebx
mov ecx, dword [ebp + 0x84]
sub ecx, dword [ebp + 0x80]
mov esi, dword [esp + 0x1c]
add dword [esp + 0x20], 0x54
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
mov dword [esp + 0x1c], esi
cmp esi, eax
jb 0x406b00
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.00430bbd
add esp, 0xec
ret 4
cmp esi, ebx
je 0x407168
mov ecx, dword [esp + 0x28]
push ecx
mov eax, esi
call fcn.00403d10
mov edx, dword [esp + 0x3c]
add esp, 4
push edx
call fcn.00413f54
add esp, 4
mov eax, dword [esp + 0x2c]
push eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.00413f54
mov esi, 0x10
add esp, 4
cmp dword [esp + 0x94], esi
jb 0x40719f
mov ecx, dword [esp + 0x80]
push ecx
call fcn.00413f54
add esp, 4
mov edi, 0xf
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
cmp dword [esp + 0x5c], esi
jb 0x4071cc
mov edx, dword [esp + 0x48]
push edx
call fcn.00413f54
add esp, 4
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
cmp dword [esp + 0x78], esi
jb 0x4071eb
mov eax, dword [esp + 0x64]
push eax
call fcn.00413f54
add esp, 4
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
cmp dword [esp + 0xe8], esi
jb 0x407210
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.00413f54
add esp, 4
mov eax, 3
jmp 0x40711e