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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4507d4
sub esp, 0x68
mov edx, dword [esp + 0x78]
test edx, edx
jne 0x4507c6
mov eax, 0x20
mov edx, dword [esp + 0x70]
cmp edx, 1
jl 0x4507b3
mov ebx, dword [esp + 0x74]
lea ebp, [ebx - 2]
cmp ebp, 0x22
ja 0x4506a4
xor ecx, ecx
mov dword [esp + 0x74], ebx
cmp ebx, 0xa
jne 0x450647
mov ebp, 0x9999999a
mov esi, 0x19999999
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], esi
mov edi, ecx
mov ecx, eax
mov ebp, 1
shl ebp, cl
cmp eax, 0x20
sbb esi, esi
and esi, ebp
mov ebp, esi
add esi, 0xffffffff
mov dword [esp + 0x2c], esi
lea ecx, [eax - 0x20]
mov eax, ecx
neg ecx
mov dword [esp + 0x40], ecx
mov esi, 1
shr esi, cl
mov ecx, eax
mov ebx, 1
shl ebx, cl
cmp eax, 0x20
mov eax, edx
sbb edx, edx
and ebx, edx
mov edx, dword [esp + 0x40]
cmp edx, 0x20
sbb edx, edx
and esi, edx
or esi, ebx
add ebp, 0xffffffff
adc esi, 0xffffffff
mov dword [esp + 0x3c], esi
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
jmp 0x4503d3
mov esi, dword [esp + 0x30]
lea edi, [esi + 1]
mov esi, dword [esp + 0x6c]
mov eax, ebp
mov edx, esi
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
cmp edi, eax
jge 0x45061a
jae 0x4507cd
mov dword [esp + 0x30], edi
movzx edx, byte [edx + edi]
lea edi, [edx - 0x30]
xchg edi, eax
cmp al, 9
xchg edi, eax
ja 0x4505e1
mov edx, dword [esp + 0x74]
xchg edi, eax
cmp al, dl
xchg edi, eax
jae 0x4505cc
xchg edi, eax
mov byte [esp + 0x1f], al
xchg edi, eax
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [esp + 0x24]
cmp edi, ebp
xchg ebp, ebx
setae bl
xchg ebp, ebx
and esi, ebp
cmp ecx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4505b4
mov ebp, eax
mov eax, edi
mov esi, edx
mul edx
movzx ebx, byte [esp + 0x1f]
movzx ebx, bl
mov dword [esp + 0x40], ebx
add ebx, eax
sar esi, 0x1f
imul edi, esi
mov esi, dword [esp + 0x74]
imul ecx, esi
add ecx, edx
add ecx, edi
mov edx, dword [esp + 0x40]
add edx, eax
mov edx, ecx
adc ecx, 0
cmp ecx, edx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebx, eax
xchg esi, ebx
setb bl
xchg esi, ebx
and edi, esi
cmp ecx, edx
setb dl
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4504c0
mov edx, dword [esp + 0x3c]
cmp ecx, edx
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [esp + 0x2c]
cmp ebx, edi
xchg edi, ebx
seta bl
xchg edi, ebx
and esi, edi
cmp ecx, edx
xchg edi, ebx
seta bl
xchg edi, ebx
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x4503ac
mov eax, dword [0x6eecc0]
mov ecx, dword [0x6eecc4]
mov edx, 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x24], edx
lea ebx, [0x5bbb20]
mov dword [esp], ebx
call fcn.0040e6c0
mov eax, dword [esp + 4]
mov dword [esp + 0x64], eax
mov dword [eax + 4], 9
mov ecx, dword [0x7016d0]
test ecx, ecx
jne 0x450599
lea ecx, [0x5dc591]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x7016d0]
lea edx, [eax + 8]
test ecx, ecx
jne 0x450583
mov ecx, dword [esp + 0x6c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x7016d0]
lea edx, [eax + 0x14]
test ecx, ecx
jne 0x45056d
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
lea ecx, [0x6bfd30]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
add esp, 0x68
ret
mov dword [esp], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040ef10
mov eax, dword [esp + 0x64]
jmp 0x450546
mov dword [esp], edx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.0040ef10
mov eax, dword [esp + 0x64]
jmp 0x45052b
mov dword [esp], eax
lea ecx, [0x5dc591]
mov dword [esp + 4], ecx
call fcn.0040ef10
mov eax, dword [esp + 0x64]
jmp 0x450510
mov ebx, dword [0x6eecc0]
mov ecx, dword [0x6eecc4]
mov edx, 0xffffffff
mov eax, ebx
jmp 0x4504d1
mov ebx, dword [0x6eecc8]
mov ecx, dword [0x6eeccc]
xor edx, edx
mov eax, ebx
jmp 0x4504d1
lea edi, [edx - 0x61]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x4505f3
lea edi, [edx - 0x57]
jmp 0x4503f7
lea edi, [edx - 0x41]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x450605
lea edi, [edx - 0x37]
jmp 0x4503f7
mov ebx, dword [0x6eecc8]
mov ecx, dword [0x6eeccc]
xor edx, edx
mov eax, ebx
jmp 0x4504d1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x68
ret
cmp ebx, 0x10
jne 0x450658
xor ebp, ebp
mov esi, 0x10000000
jmp 0x450320
mov dword [esp + 0x30], ecx
mov dword [esp + 0x78], eax
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], ebx
sar ebx, 0x1f
mov dword [esp + 0xc], ebx
call fcn.00447290
mov eax, dword [esp + 0x10]
add eax, 1
mov esi, dword [esp + 0x14]
adc esi, 0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov ebp, eax
mov eax, dword [esp + 0x78]
jmp 0x450320
test ebx, ebx
jne 0x45071b
mov ebx, dword [esp + 0x6c]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jne 0x4506fd
cmp edx, 1
jle 0x450714
movzx esi, byte [ebx + 1]
xchg esi, eax
cmp al, 0x78
xchg esi, eax
jne 0x4506f1
cmp edx, 3
jl 0x4506de
mov ecx, 0x10
mov ebp, 2
mov ebx, ecx
mov ecx, ebp
jmp 0x450309
mov eax, dword [0x6eecc8]
mov ecx, dword [0x6eeccc]
xor edx, edx
jmp 0x4504d1
xchg esi, eax
cmp al, 0x58
xchg esi, eax
je 0x4506c6
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jne 0x45070b
mov ecx, 8
mov ebp, 1
jmp 0x4506d5
mov ecx, 0xa
xor ebp, ebp
jmp 0x4506d5
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jmp 0x4506fd
mov dword [esp], ebx
call fcn.004553b0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x5dd66b]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xd
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0043bae0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
lea edx, [0x5ae960]
mov dword [esp], edx
call fcn.0040e6c0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [0x7016d0]
test ecx, ecx
jne 0x450799
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
xor edx, edx
mov ecx, eax
lea eax, [0x6bfa10]
jmp 0x4504d1
mov dword [esp + 0x60], eax
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.0040ef10
mov eax, dword [esp + 0x60]
jmp 0x45078a
mov eax, dword [0x6eecc8]
mov ecx, dword [0x6eeccc]
xor edx, edx
jmp 0x4504d1
mov eax, edx
jmp 0x4502ea
call fcn.00425c90
ud2
call fcn.0044a520
jmp fcn.004502c0