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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x45da03
sub esp, 0x60
mov ecx, dword [esp + 0x68]
test ecx, ecx
jle 0x45d9a3
mov edx, dword [esp + 0x64]
movzx ebx, byte [edx]
cmp bl, 0x2b
jne 0x45d986
mov eax, 1
xor ebx, ebx
lea ebp, [eax + 2]
cmp ebp, ecx
jge 0x45d965
cmp eax, ecx
jae 0x45d9fd
movzx esi, byte [edx + eax]
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jne 0x45d965
lea esi, [eax + 1]
cmp esi, ecx
jae 0x45d9f6
movzx esi, byte [edx + eax + 1]
or esi, 0x20
xchg esi, eax
cmp al, 0x78
xchg esi, eax
jne 0x45d965
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 0x45d421
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 0x45d652
jae 0x45d9ef
movzx edi, byte [edx + ebp]
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
jne 0x45d44e
movzx edi, byte [esp + 0xa]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
movzx edi, byte [esp + 0xa]
jmp 0x45d405
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x45d4ba
movzx edi, byte [esp + 9]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x45d483
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 0x45d405
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 0x45d5a5
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x45d5a5
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jne 0x45d59c
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x45d50f
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 0x45d405
mov edx, dword [esp + 0x10]
cmp edx, eax
jge 0x45d579
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 0x45d405
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 0x45d543
mov ebx, dword [esp + 0x24]
jmp 0x45d50f
cmp esi, 0x10
sete bl
and ebx, 1
test bl, bl
je 0x45d652
or edi, 0x20
xchg edi, eax
cmp al, 0x61
xchg edi, eax
jb 0x45d652
xchg edi, eax
cmp al, 0x66
xchg edi, eax
ja 0x45d652
mov ebx, dword [esp + 0x10]
cmp ebx, eax
jge 0x45d641
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 0x45d405
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov edx, ebx
mov ebx, 1
jmp 0x45d60d
movzx ebx, byte [esp + 0xa]
test bl, bl
je 0x45d929
movzx ebx, byte [esp + 9]
test bl, bl
je 0x45d920
mov eax, dword [esp + 0x34]
cmp esi, 0x10
sete bl
and ebx, 1
test bl, bl
je 0x45d915
shl eax, 2
mov esi, dword [esp + 0x10]
shl esi, 2
cmp ebp, ecx
mov dword [esp + 0x10], esi
jge 0x45d911
cmp ebp, ecx
jae 0x45d9e8
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 0x45d8ca
lea ebx, [ebp + 1]
cmp ebx, ecx
jge 0x45d88e
jae 0x45d9e1
movzx esi, byte [edx + ebp + 1]
xchg esi, eax
cmp al, 0x2b
xchg esi, eax
jne 0x45d870
lea ebx, [ebp + 2]
mov ebp, 1
cmp ebx, ecx
jge 0x45d834
jae 0x45d9da
movzx esi, byte [edx + ebx]
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jb 0x45d834
xchg esi, eax
cmp al, 0x39
xchg esi, eax
ja 0x45d834
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ebp
xor esi, esi
jmp 0x45d71b
inc ebx
mov ebp, dword [esp + 0x20]
cmp ebx, ecx
jge 0x45d77e
jae 0x45d9d3
movzx edi, byte [edx + ebx]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x45d81f
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x45d81f
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 0x45d77e
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
je 0x45d716
cmp esi, 0x2710
jge 0x45d77a
lea ebp, [esi + esi*4]
xchg edi, eax
movzx esi, al
xchg edi, eax
lea ebp, [esi + ebp*2 - 0x30]
mov esi, ebp
jmp 0x45d716
mov ebp, esi
jmp 0x45d776
mov edx, dword [esp + 0x20]
imul edx, esi
add eax, edx
cmp ebx, ecx
jne 0x45d7e3
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 0x45d7df
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 0x45d7af
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 0x45d750
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 0x45d884
lea ebx, [ebp + 2]
mov ebp, 0xffffffff
jmp 0x45d6e2
mov ebp, 1
jmp 0x45d6e2
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 0x45d8d5
mov ebx, ebp
jmp 0x45d787
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 0x45d8cc
cmp ebp, ecx
mov esi, dword [esp + 0x10]
jmp 0x45d68d
mov eax, dword [esp + 0x24]
jmp 0x45d670
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 0x45d3b9
cmp bl, 0x2d
jne 0x45d99a
mov eax, 1
mov ebx, 1
jmp 0x45d35c
xor eax, eax
xor ebx, ebx
jmp 0x45d35c
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.00451500
mov eax, ebx
call fcn.00451500
mov eax, ebx
call fcn.00451500
mov eax, ebp
call fcn.00451500
mov eax, ebp
call fcn.00451500
mov eax, esi
call fcn.00451500
call fcn.00451500
nop
call fcn.0044fc40
jmp fcn.0045d320