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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x40ba11
sub esp, 0x88
mov eax, dword [esp + 0x8c]
mov ebp, dword [eax]
mov dword [esp + 0x44], ebp
mov ebp, dword [eax + 4]
mov dword [esp + 0x2c], ebp
mov dword [esp], ebp
call fcn.00449030
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 0x44]
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x18], edi
movzx edi, word [ebp + 4]
mov dword [esp + 0x28], ebp
mov ecx, dword [ebp + 8]
add ebp, ecx
mov dword [esp + 0x14], edi
cmp edi, 0x10000
ja 0x40ba0a
cmp ebp, 0
je 0x40ba02
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x20], 0
xor ecx, ecx
mov ebp, dword [esp + 0x18]
cmp ecx, ebp
jge 0x40b778
mov ebx, dword [esp + 0x44]
cmp ebx, 0
je 0x40b9fb
mov dword [esp + 0x1c], ecx
mov ebp, ecx
mov esi, dword [ebx + 0x28]
cmp ecx, esi
jae 0x40b9f4
mov esi, dword [ebx + 0x24]
shl ebp, 3
add esi, ebp
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x40b9e9
mov dword [esp + 0x48], esi
mov ebp, dword [esi + 4]
mov dword [esp + 4], ebp
call fcn.00449500
mov ebx, dword [esp + 8]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x40b9de
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx]
mov dword [esp + 4], ebp
call fcn.004494b0
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov dword [esp], eax
call fcn.00449c40
mov ebx, dword [esp + 4]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp], ebx
call fcn.00449e20
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov dword [esp + 0x5c], ebx
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], ecx
cmp ecx, 0
jne 0x40b59c
mov eax, dword [esp + 0x44]
cmp eax, 0
je 0x40b9d7
add eax, 0x20
cld
mov ecx, dword [eax]
mov dword [esp], ecx
call fcn.00449c40
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 0x14]
cmp esi, ebp
jge 0x40b884
mov dword [esp + 0x20], esi
mov ebx, esi
mov ebp, dword [esp + 0x80]
cmp esi, ebp
jae 0x40b9d0
mov ebp, dword [esp + 0x7c]
shl ebx, 4
add ebp, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov dword [esp + 0x34], ebp
mov ebp, dword [ebp]
mov dword [esp + 4], ebp
call fcn.004494b0
mov ebx, dword [esp + 8]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
call fcn.00449500
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
jne 0x40b9cb
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00449c40
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x68]
cmp esi, ebx
jne 0x40b9cb
mov dword [esp + 0x74], edi
mov dword [esp], edi
mov dword [esp + 0x78], esi
mov dword [esp + 4], esi
mov ebp, dword [esp + 0x64]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0xc], ebp
call fcn.00452cd0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x40b9cb
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00449e20
mov edi, dword [esp + 4]
mov dword [esp + 0x54], edi
mov esi, dword [esp + 8]
mov dword [esp + 0x58], esi
cmp esi, 0
jne 0x40b6b5
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx]
mov dword [esp + 4], ebp
call fcn.004494b0
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov dword [esp], eax
call fcn.00449c40
mov edi, dword [esp + 4]
mov dword [esp + 0x54], edi
mov esi, dword [esp + 8]
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], ecx
movzx ebp, byte [ecx]
mov ebx, ebp
and ebx, 1
cmp bl, 0
jne 0x40b9c1
xor ecx, ecx
cmp cl, 0
jne 0x40b70b
mov ebx, dword [esp + 0x60]
cmp esi, ebx
jne 0x40b873
mov dword [esp], edi
mov dword [esp + 4], esi
mov ebp, dword [esp + 0x5c]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0xc], ebp
call fcn.00452cd0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x40b873
mov ebx, dword [esp + 0x8c]
xor ebp, ebp
cmp ebx, ebp
je 0x40b767
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx + 8]
mov dword [esp + 4], ebp
call fcn.00449870
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x40b86c
lea ebx, [ebx + 0x14]
mov ecx, dword [esp + 0x1c]
shl ecx, 2
add ebx, ecx
cmp ebx, 0
je 0x40b865
cmp byte [0x6d9e38], 0
jne 0x40b854
mov dword [ebx], ebp
mov ecx, dword [esp + 0x1c]
inc ecx
mov ebp, dword [esp + 0x18]
cmp ecx, ebp
jl 0x40b4b9
cmp byte [esp + 0x90], 0
jne 0x40b797
mov ebx, 0x5fa33e
mov dword [esp], ebx
mov dword [esp + 4], 0x14
call fcn.0042a540
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x2c]
mov edi, dword [ecx + 8]
mov ecx, dword [esi + 8]
imul ecx, ecx, 0x11
add ecx, edi
mov eax, 0x3ce4585
mul ecx
mov eax, edx
xor edx, edx
xor ebx, ebx
add eax, ecx
adc edx, ebx
shrd eax, edx, 0xa
shr edx, 0xa
mov ebx, eax
imul ebx, ebx, 0x3f1
sub ecx, ebx
mov dword [esp + 0x24], ecx
mov ebx, ecx
mov ebp, 0x6cab00
cmp ecx, 0x3f1
jae 0x40b84d
shl ebx, 2
add ebp, ebx
mov eax, dword [ebp]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x40b849
cmp byte [0x6d9e38], 0
jne 0x40b834
mov dword [ebx + 8], eax
mov ebx, ecx
mov ebp, 0x6cab00
cmp ecx, 0x3f1
jae 0x40b82d
shl ebx, 2
add ebp, ebx
mov dword [esp], ebp
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
call fcn.004035e0
add esp, 0x88
ret
call fcn.00428880
ud2
lea esi, [ebx + 8]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040f3d0
mov ecx, dword [esp + 0x24]
jmp 0x40b7ff
mov dword [ebx], eax
jmp 0x40b7f3
call fcn.00428880
ud2
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040f3d0
jmp 0x40b767
mov dword [ebx], eax
jmp 0x40b758
mov dword [ebx], eax
jmp 0x40b743
mov esi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x14]
cmp esi, ebp
jl 0x40b5a8
cmp byte [esp + 0x91], 0
jne 0x40b9ad
cmp byte [esp + 0x90], 0
je 0x40b8a9
mov ebx, 0x6d9d18
mov dword [esp], ebx
call fcn.0040cd90
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
call fcn.00448f90
mov ebx, dword [esp + 4]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x40b9a2
call fcn.00448f90
mov ebx, dword [esp + 4]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x70], ebx
mov dword [esp], 0x5db2c0
call fcn.0040ea00
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x78]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x74]
cmp byte [0x6d9e38], 0
jne 0x40b98a
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0x70]
mov dword [eax + 0x14], ebp
mov ebp, dword [esp + 0x6c]
cmp byte [0x6d9e38], 0
jne 0x40b975
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x68]
mov dword [eax + 0x1c], ebp
mov ebp, dword [esp + 0x64]
cmp byte [0x6d9e38], 0
jne 0x40b960
mov dword [eax + 0x18], ebp
mov ecx, eax
mov eax, 0x5ced00
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00429e60
ud2
lea esi, [eax + 0x18]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f3d0
mov eax, dword [esp + 0x4c]
jmp 0x40b94b
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f3d0
mov eax, dword [esp + 0x4c]
jmp 0x40b934
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f3d0
mov eax, dword [esp + 0x4c]
jmp 0x40b91d
mov dword [0], eax
jmp 0x40b8d6
mov ecx, 1
mov ebx, dword [esp + 0x8c]
mov dword [ebx + 0xc], ecx
jmp 0x40b778
mov ecx, 1
jmp 0x40b6d0
jmp 0x40b873
call fcn.00428880
ud2
mov dword [eax], eax
jmp 0x40b57a
mov dword [0], eax
jmp 0x40b519
mov dword [0], eax
jmp 0x40b4f0
call fcn.00428880
ud2
mov dword [ebx], eax
jmp 0x40b4c6
mov dword [ebp], eax
jmp 0x40b491
call fcn.004288f0
ud2
call fcn.00450fb0
jmp fcn.0040b420