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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x45f3a3
sub esp, 0x60
mov ecx, dword [esp + 0x68]
test ecx, ecx
jle 0x45f343
mov edx, dword [esp + 0x64]
movzx ebx, byte [edx]
cmp bl, 0x2b
jne 0x45f326
mov eax, 1
xor ebx, ebx
lea ebp, [eax + 2]
cmp ebp, ecx
jge 0x45f305
cmp eax, ecx
jae 0x45f39d
movzx esi, byte [edx + eax]
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jne 0x45f305
lea esi, [eax + 1]
cmp esi, ecx
jae 0x45f396
movzx esi, byte [edx + eax + 1]
or esi, 0x20
xchg esi, eax
cmp al, 0x78
xchg esi, eax
jne 0x45f305
mov eax, 0x10
mov esi, 0x10
mov edi, 0x70
mov eax, 1
mov byte [esp + 0xf], al
mov eax, 0x10
mov dword [esp + 0x28], esi
mov byte [esp + 0xe], bl
xchg edi, eax
mov byte [esp + 0xb], al
xchg edi, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], eax
xor eax, eax
mov byte [esp + 0xa], al
xor eax, eax
mov byte [esp + 9], al
xor eax, eax
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x34], eax
xor eax, eax
mov byte [esp + 0xd], al
mov eax, dword [esp + 0x58]
jmp 0x45edc1
inc ebp
xchg edi, eax
mov byte [esp + 0xa], al
xchg edi, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
movzx edi, byte [esp + 0xb]
mov eax, dword [esp + 0x50]
cmp ebp, ecx
jge 0x45eff2
jae 0x45f38f
movzx edi, byte [edx + ebp]
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
jne 0x45edee
movzx edi, byte [esp + 0xa]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
movzx edi, byte [esp + 0xa]
jmp 0x45eda5
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x45ee5a
movzx edi, byte [esp + 9]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x45ee23
movzx edi, byte [esp + 0xa]
mov edi, 1
xchg edi, eax
mov byte [esp + 9], al
xchg edi, eax
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], edi
movzx edi, byte [esp + 0xa]
jmp 0x45eda5
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], bl
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x79], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 0
add esp, 0x60
ret
mov dword [esp + 0x1c], ebp
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x45ef45
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x45ef45
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jne 0x45ef3c
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x45eeaf
mov edi, dword [esp + 0x34]
dec edi
movzx ebx, byte [esp + 0xe]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edi
mov edi, 1
mov eax, dword [esp + 0x48]
jmp 0x45eda5
mov edx, dword [esp + 0x10]
cmp edx, eax
jge 0x45ef19
mov eax, esi
mov ebp, dword [esp + 0x3c]
mul ebp
lea ebp, [edi - 0x30]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov edi, eax
add eax, ebp
mov ebx, dword [esp + 0x38]
imul ebx, esi
add edx, ebx
add edi, ebp
adc edx, 0
mov ebx, dword [esp + 0x10]
inc ebx
movzx ebp, byte [esp + 0xd]
mov edi, dword [esp + 0x24]
inc edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x10], ebx
xchg ebp, eax
mov byte [esp + 0xd], al
xchg ebp, eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x64]
movzx ebx, byte [esp + 0xe]
mov ebp, dword [esp + 0x1c]
mov edi, 1
jmp 0x45eda5
xchg edi, eax
cmp al, 0x30
xchg edi, eax
xchg edi, ebx
setne bl
xchg edi, ebx
movzx eax, byte [esp + 0xd]
or edi, eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
mov ebp, edi
jmp 0x45eee3
mov ebx, dword [esp + 0x24]
jmp 0x45eeaf
cmp esi, 0x10
sete bl
and ebx, 1
test bl, bl
je 0x45eff2
or edi, 0x20
xchg edi, eax
cmp al, 0x61
xchg edi, eax
jb 0x45eff2
xchg edi, eax
cmp al, 0x66
xchg edi, eax
ja 0x45eff2
mov ebx, dword [esp + 0x10]
cmp ebx, eax
jge 0x45efe1
mov esi, dword [esp + 0x3c]
shl esi, 4
add edi, 0xffffffa9
xchg edi, eax
movzx eax, al
xchg edi, eax
mov dword [esp + 0x30], edi
add edi, esi
mov edx, dword [esp + 0x3c]
shr edx, 0x1c
mov ebp, dword [esp + 0x38]
shl ebp, 4
or ebp, edx
mov edx, dword [esp + 0x30]
add edx, esi
adc ebp, 0
lea edx, [ebx + 1]
movzx ebx, byte [esp + 0xd]
mov esi, dword [esp + 0x24]
inc esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x10], edx
mov byte [esp + 0xd], bl
mov edx, dword [esp + 0x64]
movzx ebx, byte [esp + 0xe]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov edi, 1
jmp 0x45eda5
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov edx, ebx
mov ebx, 1
jmp 0x45efad
movzx ebx, byte [esp + 0xa]
test bl, bl
je 0x45f2c9
movzx ebx, byte [esp + 9]
test bl, bl
je 0x45f2c0
mov eax, dword [esp + 0x34]
cmp esi, 0x10
sete bl
and ebx, 1
test bl, bl
je 0x45f2b5
shl eax, 2
mov esi, dword [esp + 0x10]
shl esi, 2
cmp ebp, ecx
mov dword [esp + 0x10], esi
jge 0x45f2b1
cmp ebp, ecx
jae 0x45f388
movzx edi, byte [edx + ebp]
or edi, 0x20
movzx esi, byte [esp + 0xb]
xchg esi, eax
xchg edi, ebx
cmp al, bl
xchg edi, ebx
xchg esi, eax
jne 0x45f26a
lea ebx, [ebp + 1]
cmp ebx, ecx
jge 0x45f22e
jae 0x45f381
movzx esi, byte [edx + ebp + 1]
xchg esi, eax
cmp al, 0x2b
xchg esi, eax
jne 0x45f210
lea ebx, [ebp + 2]
mov ebp, 1
cmp ebx, ecx
jge 0x45f1d4
jae 0x45f37a
movzx esi, byte [edx + ebx]
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jb 0x45f1d4
xchg esi, eax
cmp al, 0x39
xchg esi, eax
ja 0x45f1d4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ebp
xor esi, esi
jmp 0x45f0bb
inc ebx
mov ebp, dword [esp + 0x20]
cmp ebx, ecx
jge 0x45f11e
jae 0x45f373
movzx edi, byte [edx + ebx]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x45f1bf
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x45f1bf
mov dword [esp + 0x40], eax
mov eax, 1
mov byte [esp + 0xc], al
mov eax, dword [esp + 0x40]
movzx ebp, byte [esp + 0xc]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x45f11e
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
je 0x45f0b6
cmp esi, 0x2710
jge 0x45f11a
lea ebp, [esi + esi*4]
xchg edi, eax
movzx esi, al
xchg edi, eax
lea ebp, [esi + ebp*2 - 0x30]
mov esi, ebp
jmp 0x45f0b6
mov ebp, esi
jmp 0x45f116
mov edx, dword [esp + 0x20]
imul edx, esi
add eax, edx
cmp ebx, ecx
jne 0x45f183
mov ecx, dword [esp + 0x3c]
test ecx, ecx
setne dl
mov ebx, dword [esp + 0x38]
test ebx, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x45f17f
mov edx, dword [esp + 0x10]
sub eax, edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], eax
movzx eax, byte [esp + 0xe]
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x79], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 1
add esp, 0x60
ret
xor eax, eax
jmp 0x45f14f
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
movzx eax, byte [esp + 0xe]
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x79], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 0
add esp, 0x60
ret
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
sete al
mov byte [esp + 0xc], al
mov eax, dword [esp + 0x2c]
jmp 0x45f0f0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
movzx eax, byte [esp + 0xe]
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x79], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 0
add esp, 0x60
ret
xchg esi, eax
cmp al, 0x2d
xchg esi, eax
jne 0x45f224
lea ebx, [ebp + 2]
mov ebp, 0xffffffff
jmp 0x45f082
mov ebp, 1
jmp 0x45f082
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
movzx eax, byte [esp + 0xe]
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x79], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 0
add esp, 0x60
ret
test bl, bl
jne 0x45f275
mov ebx, ebp
jmp 0x45f127
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
movzx eax, byte [esp + 0xe]
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x79], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 0
add esp, 0x60
ret
test bl, bl
jmp 0x45f26c
cmp ebp, ecx
mov esi, dword [esp + 0x10]
jmp 0x45f02d
mov eax, dword [esp + 0x24]
jmp 0x45f010
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
movzx eax, byte [esp + 0xe]
mov byte [esp + 0x78], al
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x79], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 0
add esp, 0x60
ret
mov ebp, eax
mov eax, 0x13
mov esi, 0xa
mov edi, 0x65
xor eax, eax
mov byte [esp + 0xf], al
mov eax, 0x13
jmp 0x45ed59
cmp bl, 0x2d
jne 0x45f33a
mov eax, 1
mov ebx, 1
jmp 0x45ecfc
xor eax, eax
xor ebx, ebx
jmp 0x45ecfc
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov byte [esp + 0x79], 0
mov byte [esp + 0x7a], 0
mov byte [esp + 0x7b], 0
add esp, 0x60
ret
mov eax, ebx
call fcn.00452070
mov eax, ebx
call fcn.00452070
mov eax, ebx
call fcn.00452070
mov eax, ebp
call fcn.00452070
mov eax, ebp
call fcn.00452070
mov eax, esi
call fcn.00452070
call fcn.00452070
nop
call fcn.004507b0
jmp fcn.0045ecc0