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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x45266d
sub esp, 0xc8
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
test edx, edx
sete dl
test ecx, ecx
sete cl
and edx, ecx
test dl, dl
jne 0x4525e4
mov ecx, dword [esp + 0xd4]
test ecx, ecx
je 0x452653
mov dword [esp], eax
call fcn.00451c30
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00451e70
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 8]
neg ecx
mov dword [esp + 0x7c], ecx
mov edx, dword [eax]
mov dword [esp + 0x78], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x74], eax
mov ebx, edx
shr edx, cl
cmp ecx, 0x20
sbb ebp, ebp
mov dword [esp + 0x70], ebp
and edx, ebp
lea esi, [ecx - 0x20]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x6c], esi
mov ecx, esi
shl eax, cl
cmp ecx, 0x20
sbb ecx, ecx
mov dword [esp + 0x68], ecx
and eax, ecx
or eax, edx
mov ecx, edi
mov edx, dword [esp + 0x74]
shr edx, cl
cmp ecx, 0x20
sbb esi, esi
mov dword [esp + 0x64], esi
and edx, esi
or eax, edx
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x7c]
mov edx, eax
shl eax, cl
and eax, ebp
sub ebx, eax
mov dword [esp + 0x4c], ebx
mov ebp, dword [esp + 4]
mov dword [esp + 0x54], ebp
mov ecx, edi
shl edx, cl
and edx, esi
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x60]
shr esi, cl
mov ecx, dword [esp + 0x68]
and esi, ecx
or edx, esi
mov esi, dword [esp + 0x78]
sub esi, eax
mov eax, dword [esp + 0x74]
sbb eax, edx
mov edx, dword [esp + 0x60]
xor esi, esi
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x98], ecx
mov ecx, 1
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
jmp 0x452188
mov edx, eax
mov eax, ebp
mov ebx, 0xa
mov ebp, edx
mul ebx
inc esi
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
mov eax, ebp
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x54]
cmp esi, 0x14
jge 0x4525dd
mov ecx, dword [esp + 0x3c]
test ecx, ecx
sete bl
mov ebp, dword [esp + 0x38]
cmp ebp, edx
seta dl
and edx, ebx
test ecx, ecx
seta bl
or edx, ebx
test dl, dl
je 0x45215a
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], esi
mov ecx, dword [esp + 0xd4]
cmp esi, ecx
jle 0x4525cb
sub esi, ecx
cmp esi, 0x14
jae 0x45264c
lea ebx, [0x6c4620]
lea ebx, [ebx + esi*8]
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
test ebx, ebx
je 0x452645
mov eax, dword [esp + 0x60]
xor edx, edx
div ebx
mov edx, eax
imul eax, ebx
mov esi, dword [esp + 0x60]
sub esi, eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x30], ebx
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.0044c138
mov eax, 0x20
jmp 0x452234
add edi, 0x30
mov dword [esp + 0x74], edi
lea edi, [esp + 0xa8]
mov eax, dword [esp + 0x74]
mov byte [ecx + edi - 1], al
mov eax, ebx
mov ebx, dword [esp + 0x30]
test edx, edx
jbe 0x45225a
mov ecx, eax
mov eax, 0xcccccccd
mov edi, edx
mul edx
shr edx, 3
lea ebx, [edx + edx*4]
shl ebx, 1
sub edi, ebx
lea ebx, [ecx - 1]
cmp ebx, 0x20
jb 0x452218
jmp 0x45263e
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0xd0]
mov ecx, eax
jmp 0x452284
xchg esi, ebx
mov byte [ebp + eax], bl
xchg esi, ebx
lea eax, [edi + 1]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
cmp eax, 0x20
jge 0x4522ac
mov edi, eax
sub eax, ecx
cmp edi, 0x20
jae 0x452637
mov ebx, dword [edx + 4]
mov ebp, dword [edx]
movzx esi, byte [esp + edi + 0xa8]
cmp eax, ebx
jb 0x45226d
jmp 0x452637
lea edi, [ecx - 0x20]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [edx + 0xc], edi
mov eax, edi
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x48]
add ebx, edi
mov dword [edx + 0x10], ebx
mov ebx, dword [esp + 0xd4]
lea ebx, [ecx + ebx - 0x20]
test ebx, ebx
jle 0x4525a9
test esi, esi
jne 0x45261d
test ebp, ebp
xchg edi, ebx
setne bl
xchg edi, ebx
mov ecx, ebp
mov ebp, dword [esp + 0x30]
cmp ebp, 1
xchg ebp, ebx
setne bl
xchg ebp, ebx
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
jne 0x45261d
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], ecx
mov ecx, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x80], edx
xor edx, edx
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x80]
jmp 0x4523d0
mov esi, edx
shl edx, cl
and edx, ebx
mov ebx, dword [esp + 0x4c]
sub ebx, edx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x74]
mov byte [edi + ebp], bl
mov ecx, dword [esp + 0x78]
mov ebx, esi
shl esi, cl
mov ecx, eax
mov edi, dword [esp + 0x58]
shl edi, cl
mov ecx, dword [esp + 0x6c]
shr ebx, cl
mov eax, dword [esp + 0x70]
and edi, eax
mov eax, dword [esp + 0x68]
and ebx, eax
or edi, ebx
mov ebx, dword [esp + 0x64]
and esi, ebx
or edi, esi
mov esi, dword [esp + 0x4c]
sub esi, edx
mov edx, dword [esp + 0x50]
sbb edx, edi
inc ebp
mov esi, dword [esp + 0x40]
dec esi
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x34]
mov edi, ebx
mov ebx, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], edx
mov eax, ebp
mov edx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x2c]
test ebx, ebx
jle 0x4524e9
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
mov esi, 0xa
mul esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mul esi
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x50]
lea esi, [esi + esi*4]
mov ebx, dword [esp + 0x74]
lea ebx, [ebx + esi*2]
mov dword [esp + 0x50], ebx
mov esi, dword [esp + 0x28]
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov dword [esp + 0x28], edx
shl edx, 1
shr eax, 0x1f
or eax, edx
mov edx, dword [esp + 0x24]
shl edx, 1
mov ecx, ebp
mov esi, 1
shl esi, cl
mov ecx, dword [esp + 0x6c]
mov ebp, 1
shr ebp, cl
mov ebx, dword [esp + 0x68]
and ebp, ebx
and esi, edi
or esi, ebp
cmp eax, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov ecx, dword [esp + 0x7c]
mov edi, 1
shl edi, cl
mov ebx, dword [esp + 0x70]
and edi, ebx
cmp edx, edi
seta dl
and edx, ebp
cmp eax, esi
xchg ebp, ebx
seta bl
xchg ebp, ebx
or edx, ebp
test dl, dl
jne 0x4524da
mov eax, ecx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
mov ebp, edx
shl edx, cl
mov ecx, eax
mov edi, dword [esp + 0x4c]
shr edi, cl
mov ecx, dword [esp + 0x78]
shr ebp, cl
and edi, ebx
mov esi, dword [esp + 0x68]
and edx, esi
or edx, edi
mov edi, dword [esp + 0x64]
and ebp, edi
or ebp, edx
mov edx, ebp
add ebp, 0x30
mov dword [esp + 0x74], ebp
mov ecx, eax
mov edi, dword [esp + 0x50]
shr edi, cl
and edi, ebx
mov dword [esp + 0x58], edi
mov esi, dword [esp + 0xd0]
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov ebp, dword [esp + 0x44]
cmp ebp, esi
jb 0x452352
jmp 0x452616
mov byte [esp + 0xd8], 0
add esp, 0xc8
ret
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp], edx
mov ecx, dword [esp + 0x7c]
shl esi, cl
mov edx, dword [esp + 0x70]
and esi, edx
mov edx, dword [esp + 0x4c]
or edx, esi
mov dword [esp + 4], edx
mov edx, ecx
mov ecx, ebp
mov esi, dword [esp + 0x2c]
mov ebp, esi
shl esi, cl
mov ecx, dword [esp + 0x6c]
shr ebp, cl
mov ecx, ebx
mov ebx, dword [esp + 0x68]
and ebp, ebx
and esi, edi
or esi, ebp
mov ebx, dword [esp + 0x50]
or esi, ebx
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
call fcn.00452680
movzx eax, byte [esp + 0x20]
test al, al
je 0x45259a
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
dec ecx
jmp 0x45256d
dec ecx
test ecx, ecx
jl 0x45258b
mov edx, dword [eax]
mov ebx, dword [eax + 4]
cmp ecx, ebx
jae 0x45260f
movzx edx, byte [edx + ecx]
cmp dl, 0x30
je 0x45256c
inc ecx
mov dword [eax + 0xc], ecx
mov byte [esp + 0xd8], 1
add esp, 0xc8
ret
mov byte [esp + 0xd8], 0
add esp, 0xc8
ret
mov ecx, ebp
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x64]
mov eax, 1
xor ebx, ebx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x34]
jmp 0x4524f4
mov edx, dword [esp + 0x60]
xor ebp, ebp
mov ebx, 1
xor esi, esi
jmp 0x4521fb
xor esi, esi
jmp 0x4521b0
mov ecx, dword [esp + 0xd0]
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
movzx eax, byte [eax + 0xc]
mov byte [ecx + 0x14], al
mov byte [esp + 0xd8], 1
add esp, 0xc8
ret
call fcn.00425c90
ud2
call fcn.00425c90
ud2
lea eax, [0x5a5c80]
mov dword [esp], eax
lea eax, [0x608ae8]
mov dword [esp + 4], eax
call fcn.00426ac0
ud2
call fcn.00425c90
ud2
call fcn.00425c90
ud2
call fcn.00425d50
ud2
call fcn.00425c90
ud2
lea eax, [0x5a5c80]
mov dword [esp], eax
lea eax, [0x608ae0]
mov dword [esp + 4], eax
call fcn.00426ac0
ud2
call fcn.0044a520
jmp fcn.00452020