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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x45b433
sub esp, 0x60
mov ecx, dword [esp + 0x68]
test ecx, ecx
jle 0x45b3d3
mov edx, dword [esp + 0x64]
movzx ebx, byte [edx]
cmp bl, 0x2b
jne 0x45b3b6
mov eax, 1
xor ebx, ebx
lea ebp, [eax + 2]
cmp ebp, ecx
jge 0x45b395
cmp eax, ecx
jae 0x45b42d
movzx esi, byte [edx + eax]
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jne 0x45b395
lea esi, [eax + 1]
cmp esi, ecx
jae 0x45b426
movzx esi, byte [edx + eax + 1]
or esi, 0x20
xchg esi, eax
cmp al, 0x78
xchg esi, eax
jne 0x45b395
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 0x45ae51
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 0x45b082
jae 0x45b41f
movzx edi, byte [edx + ebp]
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
jne 0x45ae7e
movzx edi, byte [esp + 0xa]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
movzx edi, byte [esp + 0xa]
jmp 0x45ae35
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x45aeea
movzx edi, byte [esp + 9]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x45aeb3
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 0x45ae35
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 0x45afd5
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x45afd5
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jne 0x45afcc
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x45af3f
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 0x45ae35
mov edx, dword [esp + 0x10]
cmp edx, eax
jge 0x45afa9
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 0x45ae35
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 0x45af73
mov ebx, dword [esp + 0x24]
jmp 0x45af3f
cmp esi, 0x10
sete bl
and ebx, 1
test bl, bl
je 0x45b082
or edi, 0x20
xchg edi, eax
cmp al, 0x61
xchg edi, eax
jb 0x45b082
xchg edi, eax
cmp al, 0x66
xchg edi, eax
ja 0x45b082
mov ebx, dword [esp + 0x10]
cmp ebx, eax
jge 0x45b071
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 0x45ae35
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov edx, ebx
mov ebx, 1
jmp 0x45b03d
movzx ebx, byte [esp + 0xa]
test bl, bl
je 0x45b359
movzx ebx, byte [esp + 9]
test bl, bl
je 0x45b350
mov eax, dword [esp + 0x34]
cmp esi, 0x10
sete bl
and ebx, 1
test bl, bl
je 0x45b345
shl eax, 2
mov esi, dword [esp + 0x10]
shl esi, 2
cmp ebp, ecx
mov dword [esp + 0x10], esi
jge 0x45b341
cmp ebp, ecx
jae 0x45b418
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 0x45b2fa
lea ebx, [ebp + 1]
cmp ebx, ecx
jge 0x45b2be
jae 0x45b411
movzx esi, byte [edx + ebp + 1]
xchg esi, eax
cmp al, 0x2b
xchg esi, eax
jne 0x45b2a0
lea ebx, [ebp + 2]
mov ebp, 1
cmp ebx, ecx
jge 0x45b264
jae 0x45b40a
movzx esi, byte [edx + ebx]
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jb 0x45b264
xchg esi, eax
cmp al, 0x39
xchg esi, eax
ja 0x45b264
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ebp
xor esi, esi
jmp 0x45b14b
inc ebx
mov ebp, dword [esp + 0x20]
cmp ebx, ecx
jge 0x45b1ae
jae 0x45b403
movzx edi, byte [edx + ebx]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x45b24f
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x45b24f
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 0x45b1ae
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
je 0x45b146
cmp esi, 0x2710
jge 0x45b1aa
lea ebp, [esi + esi*4]
xchg edi, eax
movzx esi, al
xchg edi, eax
lea ebp, [esi + ebp*2 - 0x30]
mov esi, ebp
jmp 0x45b146
mov ebp, esi
jmp 0x45b1a6
mov edx, dword [esp + 0x20]
imul edx, esi
add eax, edx
cmp ebx, ecx
jne 0x45b213
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 0x45b20f
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 0x45b1df
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 0x45b180
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 0x45b2b4
lea ebx, [ebp + 2]
mov ebp, 0xffffffff
jmp 0x45b112
mov ebp, 1
jmp 0x45b112
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 0x45b305
mov ebx, ebp
jmp 0x45b1b7
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 0x45b2fc
cmp ebp, ecx
mov esi, dword [esp + 0x10]
jmp 0x45b0bd
mov eax, dword [esp + 0x24]
jmp 0x45b0a0
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 0x45ade9
cmp bl, 0x2d
jne 0x45b3ca
mov eax, 1
mov ebx, 1
jmp 0x45ad8c
xor eax, eax
xor ebx, ebx
jmp 0x45ad8c
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.00450370
mov eax, ebx
call fcn.00450370
mov eax, ebx
call fcn.00450370
mov eax, ebp
call fcn.00450370
mov eax, ebp
call fcn.00450370
mov eax, esi
call fcn.00450370
call fcn.00450370
nop
call fcn.0044eab0
jmp fcn.0045ad50