Function at 0x40a460
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 0x40aa51
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.00447f10
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 0x40aa4a
cmp ebp, 0
je 0x40aa42
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 0x40a7b8
mov ebx, dword [esp + 0x44]
cmp ebx, 0
je 0x40aa3b
mov dword [esp + 0x1c], ecx
mov ebp, ecx
mov esi, dword [ebx + 0x28]
cmp ecx, esi
jae 0x40aa34
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 0x40aa29
mov dword [esp + 0x48], esi
mov ebp, dword [esi + 4]
mov dword [esp + 4], ebp
call fcn.004483e0
mov ebx, dword [esp + 8]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x40aa1e
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx]
mov dword [esp + 4], ebp
call fcn.00448390
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov dword [esp], eax
call fcn.00448b20
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.00448d00
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 0x40a5dc
mov eax, dword [esp + 0x44]
cmp eax, 0
je 0x40aa17
add eax, 0x20
cld
mov ecx, dword [eax]
mov dword [esp], ecx
call fcn.00448b20
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 0x40a8c4
mov dword [esp + 0x20], esi
mov ebx, esi
mov ebp, dword [esp + 0x80]
cmp esi, ebp
jae 0x40aa10
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.00448390
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.004483e0
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
jne 0x40aa0b
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00448b20
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x68]
cmp esi, ebx
jne 0x40aa0b
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.00451bb0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x40aa0b
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00448d00
mov edi, dword [esp + 4]
mov dword [esp + 0x54], edi
mov esi, dword [esp + 8]
mov dword [esp + 0x58], esi
cmp esi, 0
jne 0x40a6f5
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.00448390
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov dword [esp], eax
call fcn.00448b20
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 0x40aa01
xor ecx, ecx
cmp cl, 0
jne 0x40a74b
mov ebx, dword [esp + 0x60]
cmp esi, ebx
jne 0x40a8b3
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.00451bb0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x40a8b3
mov ebx, dword [esp + 0x8c]
xor ebp, ebp
cmp ebx, ebp
je 0x40a7a7
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.00448750
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x40a8ac
lea ebx, [ebx + 0x14]
mov ecx, dword [esp + 0x1c]
shl ecx, 2
add ebx, ecx
cmp ebx, 0
je 0x40a8a5
cmp byte [0x6cfdf8], 0
jne 0x40a894
mov dword [ebx], ebp
mov ecx, dword [esp + 0x1c]
inc ecx
mov ebp, dword [esp + 0x18]
cmp ecx, ebp
jl 0x40a4f9
cmp byte [esp + 0x90], 0
jne 0x40a7d7
mov ebx, 0x5f2a28
mov dword [esp], ebx
mov dword [esp + 4], 0x14
call fcn.00429580
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, 0x6c0ac0
cmp ecx, 0x3f1
jae 0x40a88d
shl ebx, 2
add ebp, ebx
mov eax, dword [ebp]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x40a889
cmp byte [0x6cfdf8], 0
jne 0x40a874
mov dword [ebx + 8], eax
mov ebx, ecx
mov ebp, 0x6c0ac0
cmp ecx, 0x3f1
jae 0x40a86d
shl ebx, 2
add ebp, ebx
mov dword [esp], ebp
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
call fcn.00402620
add esp, 0x88
ret
call fcn.004278c0
ud2
lea esi, [ebx + 8]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040e410
mov ecx, dword [esp + 0x24]
jmp 0x40a83f
mov dword [ebx], eax
jmp 0x40a833
call fcn.004278c0
ud2
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040e410
jmp 0x40a7a7
mov dword [ebx], eax
jmp 0x40a798
mov dword [ebx], eax
jmp 0x40a783
mov esi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x14]
cmp esi, ebp
jl 0x40a5e8
cmp byte [esp + 0x91], 0
jne 0x40a9ed
cmp byte [esp + 0x90], 0
je 0x40a8e9
mov ebx, 0x6cfcd8
mov dword [esp], ebx
call fcn.0040bdd0
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
call fcn.00447e70
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 0x40a9e2
call fcn.00447e70
mov ebx, dword [esp + 4]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x70], ebx
mov dword [esp], 0x5d3f80
call fcn.0040da40
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 [0x6cfdf8], 0
jne 0x40a9ca
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0x70]
mov dword [eax + 0x14], ebp
mov ebp, dword [esp + 0x6c]
cmp byte [0x6cfdf8], 0
jne 0x40a9b5
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x68]
mov dword [eax + 0x1c], ebp
mov ebp, dword [esp + 0x64]
cmp byte [0x6cfdf8], 0
jne 0x40a9a0
mov dword [eax + 0x18], ebp
mov ecx, eax
mov eax, 0x5c7a80
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00428ea0
ud2
lea esi, [eax + 0x18]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040e410
mov eax, dword [esp + 0x4c]
jmp 0x40a98b
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040e410
mov eax, dword [esp + 0x4c]
jmp 0x40a974
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040e410
mov eax, dword [esp + 0x4c]
jmp 0x40a95d
mov dword [0], eax
jmp 0x40a916
mov ecx, 1
mov ebx, dword [esp + 0x8c]
mov dword [ebx + 0xc], ecx
jmp 0x40a7b8
mov ecx, 1
jmp 0x40a710
jmp 0x40a8b3
call fcn.004278c0
ud2
mov dword [eax], eax
jmp 0x40a5ba
mov dword [0], eax
jmp 0x40a559
mov dword [0], eax
jmp 0x40a530
call fcn.004278c0
ud2
mov dword [ebx], eax
jmp 0x40a506
mov dword [ebp], eax
jmp 0x40a4d1
call fcn.00427930
ud2
call fcn.0044fe90
jmp fcn.0040a460