Function at 0x40b340
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 0x40b931
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.00448f50
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 0x40b92a
cmp ebp, 0
je 0x40b922
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 0x40b698
mov ebx, dword [esp + 0x44]
cmp ebx, 0
je 0x40b91b
mov dword [esp + 0x1c], ecx
mov ebp, ecx
mov esi, dword [ebx + 0x28]
cmp ecx, esi
jae 0x40b914
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 0x40b909
mov dword [esp + 0x48], esi
mov ebp, dword [esi + 4]
mov dword [esp + 4], ebp
call fcn.00449420
mov ebx, dword [esp + 8]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x40b8fe
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx]
mov dword [esp + 4], ebp
call fcn.004493d0
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov dword [esp], eax
call fcn.00449b60
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.00449d40
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 0x40b4bc
mov eax, dword [esp + 0x44]
cmp eax, 0
je 0x40b8f7
add eax, 0x20
cld
mov ecx, dword [eax]
mov dword [esp], ecx
call fcn.00449b60
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 0x40b7a4
mov dword [esp + 0x20], esi
mov ebx, esi
mov ebp, dword [esp + 0x80]
cmp esi, ebp
jae 0x40b8f0
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.004493d0
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.00449420
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
jne 0x40b8eb
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00449b60
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x68]
cmp esi, ebx
jne 0x40b8eb
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.00452bf0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x40b8eb
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00449d40
mov edi, dword [esp + 4]
mov dword [esp + 0x54], edi
mov esi, dword [esp + 8]
mov dword [esp + 0x58], esi
cmp esi, 0
jne 0x40b5d5
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.004493d0
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov dword [esp], eax
call fcn.00449b60
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 0x40b8e1
xor ecx, ecx
cmp cl, 0
jne 0x40b62b
mov ebx, dword [esp + 0x60]
cmp esi, ebx
jne 0x40b793
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.00452bf0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x40b793
mov ebx, dword [esp + 0x8c]
xor ebp, ebp
cmp ebx, ebp
je 0x40b687
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.00449790
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x40b78c
lea ebx, [ebx + 0x14]
mov ecx, dword [esp + 0x1c]
shl ecx, 2
add ebx, ecx
cmp ebx, 0
je 0x40b785
cmp byte [0x6d9e18], 0
jne 0x40b774
mov dword [ebx], ebp
mov ecx, dword [esp + 0x1c]
inc ecx
mov ebp, dword [esp + 0x18]
cmp ecx, ebp
jl 0x40b3d9
cmp byte [esp + 0x90], 0
jne 0x40b6b7
mov ebx, 0x5fa00a
mov dword [esp], ebx
mov dword [esp + 4], 0x14
call fcn.0042a460
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, 0x6caae0
cmp ecx, 0x3f1
jae 0x40b76d
shl ebx, 2
add ebp, ebx
mov eax, dword [ebp]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x40b769
cmp byte [0x6d9e18], 0
jne 0x40b754
mov dword [ebx + 8], eax
mov ebx, ecx
mov ebp, 0x6caae0
cmp ecx, 0x3f1
jae 0x40b74d
shl ebx, 2
add ebp, ebx
mov dword [esp], ebp
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
call fcn.00403500
add esp, 0x88
ret
call fcn.004287a0
ud2
lea esi, [ebx + 8]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040f2f0
mov ecx, dword [esp + 0x24]
jmp 0x40b71f
mov dword [ebx], eax
jmp 0x40b713
call fcn.004287a0
ud2
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040f2f0
jmp 0x40b687
mov dword [ebx], eax
jmp 0x40b678
mov dword [ebx], eax
jmp 0x40b663
mov esi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x14]
cmp esi, ebp
jl 0x40b4c8
cmp byte [esp + 0x91], 0
jne 0x40b8cd
cmp byte [esp + 0x90], 0
je 0x40b7c9
mov ebx, 0x6d9cf8
mov dword [esp], ebx
call fcn.0040ccb0
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
call fcn.00448eb0
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 0x40b8c2
call fcn.00448eb0
mov ebx, dword [esp + 4]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x70], ebx
mov dword [esp], 0x5db060
call fcn.0040e920
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 [0x6d9e18], 0
jne 0x40b8aa
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0x70]
mov dword [eax + 0x14], ebp
mov ebp, dword [esp + 0x6c]
cmp byte [0x6d9e18], 0
jne 0x40b895
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x68]
mov dword [eax + 0x1c], ebp
mov ebp, dword [esp + 0x64]
cmp byte [0x6d9e18], 0
jne 0x40b880
mov dword [eax + 0x18], ebp
mov ecx, eax
mov eax, 0x5ceaa0
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00429d80
ud2
lea esi, [eax + 0x18]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f2f0
mov eax, dword [esp + 0x4c]
jmp 0x40b86b
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f2f0
mov eax, dword [esp + 0x4c]
jmp 0x40b854
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f2f0
mov eax, dword [esp + 0x4c]
jmp 0x40b83d
mov dword [0], eax
jmp 0x40b7f6
mov ecx, 1
mov ebx, dword [esp + 0x8c]
mov dword [ebx + 0xc], ecx
jmp 0x40b698
mov ecx, 1
jmp 0x40b5f0
jmp 0x40b793
call fcn.004287a0
ud2
mov dword [eax], eax
jmp 0x40b49a
mov dword [0], eax
jmp 0x40b439
mov dword [0], eax
jmp 0x40b410
call fcn.004287a0
ud2
mov dword [ebx], eax
jmp 0x40b3e6
mov dword [ebp], eax
jmp 0x40b3b1
call fcn.00428810
ud2
call fcn.00450ed0
jmp fcn.0040b340