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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x45215e
sub esp, 0xbc
mov eax, dword [esp + 0xc0]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4520ce
mov ebp, dword [esp + 0xc8]
test ebp, ebp
je 0x452144
test edx, edx
xchg esi, ebx
setae bl
xchg esi, ebx
cmp ebx, 1
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, esi
cmp ebx, 1
xchg esi, ebx
seta bl
xchg esi, ebx
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x4520c1
mov ecx, ebx
xor esi, esi
mov edi, 0x20
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp ebx, 0x10000
setae al
and eax, ebp
test esi, esi
xchg ebp, ebx
seta bl
xchg ebp, ebx
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4520b6
shr ebx, 0x10
mov eax, esi
shl esi, 0x10
or esi, ebx
shr eax, 0x10
lea ebx, [edi + 0x10]
cmp esi, 0x100
xchg ebp, ebx
setae bl
xchg ebp, ebx
test eax, eax
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebp
test eax, eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4520ad
shr esi, 8
mov ebp, eax
shl eax, 0x18
or eax, esi
shr ebp, 8
add ebx, 8
test ebp, ebp
jne 0x45213d
cmp eax, 0x100
jae 0x45213d
mov dword [esp + 0x48], ebx
mov dword [esp + 0x88], edx
lea ebp, [0x748860]
movzx eax, byte [ebp + eax]
mov dword [esp + 0x84], eax
lea ebp, [eax + ebx - 0x40]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov esi, ecx
mov ecx, ebp
mov edi, edx
shl edx, cl
cmp ecx, 0x20
sbb eax, eax
and edx, eax
mov ebx, dword [esp + 0xc0]
mov dword [ebx], edx
lea edx, [ecx - 0x20]
mov ecx, edx
shl edi, cl
neg ecx
mov dword [esp + 0x80], ecx
mov ebx, dword [esp + 0x88]
shr ebx, cl
mov ecx, ebp
shl esi, cl
and esi, eax
mov eax, dword [esp + 0x80]
cmp eax, 0x20
sbb eax, eax
and ebx, eax
or ebx, esi
cmp edx, 0x20
sbb eax, eax
and edi, eax
or edi, ebx
mov eax, dword [esp + 0xc0]
mov dword [eax + 4], edi
mov edx, dword [eax + 8]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x84]
add ebx, ebp
lea edx, [ebx + edx - 0x40]
mov dword [eax + 8], edx
mov dword [esp], eax
call fcn.004517e0
mov eax, dword [esp + 0xc0]
mov edx, dword [eax + 8]
neg edx
mov dword [esp + 0x84], edx
mov ebx, dword [eax]
mov dword [esp + 0x88], ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x80], eax
lea ecx, [edx - 0x20]
mov dword [esp + 0x7c], ecx
mov ebp, eax
shr eax, cl
cmp ecx, 0x20
sbb esi, esi
mov dword [esp + 0x78], esi
and eax, esi
neg ecx
mov dword [esp + 0x74], ecx
shl ebp, cl
cmp ecx, 0x20
sbb esi, esi
mov dword [esp + 0x70], esi
and ebp, esi
cmp edx, 0x20
sbb edi, edi
mov dword [esp + 0x6c], edi
mov ecx, edx
shr ebx, cl
and ebx, edi
or ebx, ebp
or eax, ebx
mov dword [esp + 0x68], eax
mov ebx, eax
shl eax, cl
and eax, edi
mov ebp, dword [esp + 0x88]
sub ebp, eax
mov dword [esp + 0x50], ebp
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x74]
shr ebx, cl
and ebx, esi
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
shl edx, cl
mov esi, dword [esp + 0x78]
and edx, esi
or edx, ebx
mov ebx, dword [esp + 0x88]
sub ebx, eax
mov eax, dword [esp + 0x80]
sbb eax, edx
mov edx, dword [esp + 0x68]
xor ebx, ebx
xor ebx, ebx
mov dword [esp + 0x3c], ebx
mov ebx, 1
mov dword [esp + 0x38], ebx
xor ebx, ebx
jmp 0x451c38
mov ecx, eax
mov eax, ebp
mov edx, 0xa
mul edx
inc ebx
lea ebp, [esi + esi*4]
lea edx, [edx + ebp*2]
mov ebp, dword [esp + 0x68]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov eax, ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
cmp ebx, 0x14
jge 0x4520a6
mov esi, dword [esp + 0x3c]
test esi, esi
sete cl
mov ebp, dword [esp + 0x38]
cmp ebp, edx
seta dl
and edx, ecx
test esi, esi
seta cl
or edx, ecx
test dl, dl
je 0x451c08
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0xc8]
cmp ebx, ecx
jle 0x452094
sub ebx, ecx
cmp ebx, 0x14
jae 0x452136
lea ebp, [0x747ae0]
lea ebx, [ebp + ebx*8]
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
test ebp, ebp
je 0x45212f
mov eax, dword [esp + 0x68]
xor edx, edx
div ebp
mov edx, eax
imul eax, ebp
mov esi, dword [esp + 0x68]
sub esi, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x30], ebp
lea edi, [esp + 0x9c]
xor eax, eax
call fcn.0044b5f8
mov eax, 0x20
jmp 0x451ceb
add edi, 0x30
mov dword [esp + 0x88], edi
lea edi, [esp + 0x9c]
mov eax, dword [esp + 0x88]
mov byte [ecx + edi - 1], al
mov eax, ebp
mov ebp, dword [esp + 0x30]
test edx, edx
jbe 0x451d11
mov ecx, eax
mov eax, 0xcccccccd
mov edi, edx
mul edx
shr edx, 3
lea ebp, [edx + edx*4]
shl ebp, 1
sub edi, ebp
lea ebp, [ecx - 1]
cmp ebp, 0x20
jb 0x451cc9
jmp 0x452128
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0xc4]
mov ecx, eax
jmp 0x451d3b
xchg esi, ebx
mov byte [ebp + eax], bl
xchg esi, ebx
lea eax, [edi + 1]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp eax, 0x20
jge 0x451d63
mov edi, eax
sub eax, ecx
cmp edi, 0x20
jae 0x452121
mov ebp, dword [edx]
mov ebx, dword [edx + 4]
movzx esi, byte [esp + edi + 0x9c]
cmp eax, ebx
jb 0x451d24
jmp 0x452121
lea edi, [ecx - 0x20]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [edx + 0xc], edi
mov eax, edi
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x4c]
add ebp, edi
mov dword [edx + 0x10], ebp
mov ebp, dword [esp + 0xc8]
lea ebp, [ecx + ebp - 0x20]
test ebp, ebp
jle 0x452072
test esi, esi
jne 0x452107
test ebx, ebx
xchg edi, ebx
setne bl
xchg edi, ebx
mov ecx, ebx
mov ebx, dword [esp + 0x30]
cmp ebx, 1
setne bl
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x452107
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x54], eax
mov dword [esp + 0x8c], ecx
mov ecx, 1
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x8c]
jmp 0x451e88
mov esi, edx
shl edx, cl
and edx, ebp
mov ebp, dword [esp + 0x50]
sub ebp, edx
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x68]
xchg ebp, eax
mov byte [edi + ebx], al
xchg ebp, eax
mov ecx, dword [esp + 0x7c]
mov ebp, esi
shl esi, cl
mov ecx, dword [esp + 0x74]
shr ebp, cl
mov ecx, eax
mov edi, dword [esp + 0x5c]
shl edi, cl
mov eax, dword [esp + 0x6c]
and edi, eax
mov eax, dword [esp + 0x70]
and ebp, eax
or edi, ebp
mov ebp, dword [esp + 0x78]
and esi, ebp
or edi, esi
mov esi, dword [esp + 0x50]
sub esi, edx
mov edx, dword [esp + 0x88]
sbb edx, edi
inc ebx
mov esi, dword [esp + 0x40]
dec esi
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x34]
mov edi, ebp
mov ebp, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edx
mov esi, dword [esp + 0x80]
mov dword [esp + 0x28], esi
mov eax, ebx
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x2c]
test ebp, ebp
jle 0x451faf
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x50]
mov esi, 0xa
mul esi
mov dword [esp + 0x88], edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
mul esi
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x54]
lea esi, [esi + esi*4]
mov ebp, dword [esp + 0x88]
lea ebp, [ebp + esi*2]
mov dword [esp + 0x88], ebp
mov esi, dword [esp + 0x28]
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov dword [esp + 0x80], edx
shl edx, 1
shr eax, 0x1f
or eax, edx
mov edx, dword [esp + 0x24]
shl edx, 1
mov ecx, ebx
mov esi, 1
shl esi, cl
mov ecx, dword [esp + 0x74]
mov ebx, 1
shr ebx, cl
mov ebp, dword [esp + 0x70]
and ebx, ebp
and esi, edi
or esi, ebx
cmp eax, esi
sete bl
mov ecx, dword [esp + 0x84]
mov edi, 1
shl edi, cl
mov ebp, dword [esp + 0x6c]
and edi, ebp
cmp edx, edi
seta dl
and edx, ebx
cmp eax, esi
seta bl
or edx, ebx
test dl, dl
jne 0x451fa0
mov eax, ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x88]
mov ebx, edx
shl edx, cl
mov ecx, eax
mov edi, dword [esp + 0x50]
shr edi, cl
mov ecx, dword [esp + 0x7c]
shr ebx, cl
and edi, ebp
mov esi, dword [esp + 0x70]
and edx, esi
or edx, edi
mov edi, dword [esp + 0x78]
and ebx, edi
or ebx, edx
mov edx, ebx
add ebx, 0x30
mov dword [esp + 0x68], ebx
mov ecx, eax
mov edi, dword [esp + 0x88]
shr edi, cl
and edi, ebp
mov dword [esp + 0x5c], edi
mov esi, dword [esp + 0xc4]
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov ebx, dword [esp + 0x44]
cmp ebx, esi
jb 0x451dfa
jmp 0x452100
mov byte [esp + 0xcc], 0
add esp, 0xbc
ret
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
mov dword [esp], edx
mov ecx, dword [esp + 0x84]
shl esi, cl
mov edx, dword [esp + 0x6c]
and esi, edx
mov edx, dword [esp + 0x50]
or edx, esi
mov dword [esp + 4], edx
mov edx, ecx
mov ecx, ebx
mov esi, dword [esp + 0x2c]
mov ebx, esi
shl esi, cl
mov ecx, dword [esp + 0x74]
shr ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x70]
and ebx, eax
and esi, edi
or esi, ebx
mov eax, dword [esp + 0x54]
or esi, eax
mov dword [esp + 8], esi
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ecx
call fcn.00452170
movzx eax, byte [esp + 0x20]
test al, al
je 0x452063
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0xc]
dec ecx
jmp 0x452036
dec ecx
test ecx, ecx
jl 0x452054
mov edx, dword [eax + 4]
mov ebx, dword [eax]
cmp ecx, edx
jae 0x4520f9
movzx edx, byte [ebx + ecx]
cmp dl, 0x30
je 0x452035
inc ecx
mov dword [eax + 0xc], ecx
mov byte [esp + 0xcc], 1
add esp, 0xbc
ret
mov byte [esp + 0xcc], 0
add esp, 0xbc
ret
mov ecx, ebx
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
xor eax, eax
mov ebp, 1
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x34]
jmp 0x451fba
mov edx, dword [esp + 0x68]
xor ebx, ebx
mov ebp, 1
xor esi, esi
jmp 0x451cac
xor ebx, ebx
jmp 0x451c60
mov ebp, eax
mov eax, esi
jmp 0x451a93
mov eax, esi
mov esi, ebx
mov ebx, edi
jmp 0x451a56
mov ecx, ebx
mov ebx, edx
mov esi, ecx
xor edi, edi
jmp 0x451a1d
mov ecx, dword [esp + 0xc4]
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
movzx eax, byte [eax + 0xc]
mov byte [ecx + 0x14], al
mov byte [esp + 0xcc], 1
add esp, 0xbc
ret
call fcn.00425900
ud2
call fcn.00425900
ud2
lea eax, [0x5b36a0]
mov dword [esp], eax
lea eax, [0x626e20]
mov dword [esp + 4], eax
call fcn.004267e0
ud2
call fcn.00425900
ud2
call fcn.00425900
ud2
call fcn.00425b00
ud2
call fcn.00425900
ud2
call fcn.00425900
ud2
lea eax, [0x5b36a0]
mov dword [esp], eax
lea eax, [0x626e18]
mov dword [esp + 4], eax
call fcn.004267e0
ud2
call fcn.00449da0
jmp fcn.00451990