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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov esi, dword [esp + 0x88]
mov edi, dword [esi]
mov dword [esp + 0x34], 0x4a4860
mov eax, dword [0x4a4860]
cmp eax, 0xffffffff
je 0x4531b9
lea eax, [esp + 0x34]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x40]
push 0x467600
push eax
push 0x4a4860
call fcn.0046d1d0
add esp, 0xc
mov eax, dword [0x4a4864]
lea edx, [eax - 1]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
sub edi, ecx
sar edi, 2
cmp edi, edx
jbe 0x453b08
mov eax, dword [ecx + eax*4 - 4]
mov dword [esp + 0xc], eax
test eax, eax
je 0x453b08
mov esi, dword [esi]
mov dword [esp + 0x34], 0x4a4984
mov eax, dword [0x4a4984]
cmp eax, 0xffffffff
je 0x45321f
lea eax, [esp + 0x34]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x40]
push 0x467600
push eax
push 0x4a4984
call fcn.0046d1d0
add esp, 0xc
mov eax, dword [0x4a4988]
lea edx, [eax - 1]
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
sub esi, ecx
sar esi, 2
cmp esi, edx
jbe 0x453b0d
mov esi, dword [ecx + eax*4 - 4]
test esi, esi
je 0x453b0d
mov edi, dword [esp + 0x84]
mov ebp, dword [esp + 0x70]
mov eax, dword [esi]
mov ebx, dword [eax + 0x14]
mov ecx, ebx
call dword [0x4a24bc]
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], esi
push esi
call ebx
mov eax, dword [esp + 0x7c]
mov dword [edi], eax
movzx ebx, byte [ebp]
cmp ebx, 0x2d
je 0x453281
mov esi, dword [esp + 0x70]
cmp ebx, 0x2b
jne 0x4532b1
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x4a24bc]
movsx eax, bl
mov ecx, edi
push eax
call esi
mov ecx, dword [esp + 0x70]
lea esi, [ecx + 1]
mov edi, dword [esp + 0x84]
mov ecx, dword [edi]
lea edx, [ecx + 1]
mov dword [edi], edx
mov byte [ecx], al
mov eax, dword [esp + 0x78]
sub eax, esi
cmp eax, 2
mov ebx, esi
jl 0x4534bc
cmp byte [ebx], 0x30
jne 0x4534bc
movzx eax, byte [ebx + 1]
or eax, 0x20
cmp eax, 0x78
jne 0x4534bc
mov esi, dword [esp + 0xc]
mov eax, dword [esi]
mov ebp, ebx
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [0x4a24bc]
mov ecx, esi
push 0x30
call ebx
mov ecx, dword [edi]
lea edx, [ecx + 1]
mov dword [edi], edx
mov byte [ecx], al
movsx esi, byte [ebp + 1]
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [0x4a24bc]
mov ecx, edi
mov edi, dword [esp + 0x84]
push esi
call ebx
add ebp, 2
mov ecx, dword [edi]
lea edx, [ecx + 1]
mov dword [edi], edx
mov byte [ecx], al
cmp ebp, dword [esp + 0x78]
mov dword [esp + 4], ebp
mov ebx, ebp
jae 0x453637
nop word [eax + eax]
lea eax, [esp + 0x40]
push eax
call fcn.00449b80
add esp, 4
mov esi, dword [esp + 0x40]
test esi, esi
je 0x4533d0
lea eax, [esp + 0x34]
push eax
call fcn.00449b80
add esp, 4
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
cmp dword [eax + 0xac], 2
jl 0x4533d0
movsx esi, byte [ebx]
lea eax, [esp + 0x24]
push eax
call fcn.00449b80
add esp, 4
mov ebp, ebx
push dword [esp + 0x24]
push 0x80
push esi
call dword [sym.imp.msvcrt.dll__isctype_l]
add esp, 0xc
test eax, eax
sete byte [esp]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x453466
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
jmp 0x453466
lea eax, [esp + 0x24]
push eax
call fcn.00449b80
add esp, 4
cmp dword [esp + 0x24], 0
je 0x453430
mov ebp, ebx
lea eax, [esp + 0x50]
push eax
call fcn.00449b80
add esp, 4
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x58]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
movzx ecx, byte [ebp]
movzx eax, word [eax + ecx*2]
test ebx, ebx
je 0x45343f
mov ecx, ebx
mov word [esp], ax
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
movzx eax, word [esp + 8]
add esp, 8
jmp 0x45343f
call dword [0x4a34ec]
mov ebp, ebx
movzx ecx, byte [ebx]
movzx eax, word [eax + ecx*2]
test al, al
setns byte [esp]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x453462
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
test esi, esi
je 0x453483
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x453483
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x4534a0
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
cmp byte [esp], 0
jne 0x4539c7
mov ebx, ebp
inc ebx
cmp ebx, dword [esp + 0x78]
jb 0x453340
jmp 0x453637
cmp ebx, dword [esp + 0x78]
mov dword [esp + 4], ebx
jae 0x453637
nop word [eax + eax]
lea eax, [esp + 0x40]
push eax
call fcn.00449b80
add esp, 4
mov esi, dword [esp + 0x40]
test esi, esi
je 0x453550
lea eax, [esp + 0x34]
push eax
call fcn.00449b80
add esp, 4
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
cmp dword [eax + 0xac], 2
jl 0x453550
movsx esi, byte [ebx]
lea eax, [esp + 0x24]
push eax
call fcn.00449b80
add esp, 4
mov ebp, ebx
push dword [esp + 0x24]
push 4
push esi
call dword [sym.imp.msvcrt.dll__isctype_l]
add esp, 0xc
test eax, eax
sete byte [esp]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x4535e6
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
jmp 0x4535e6
lea eax, [esp + 0x24]
push eax
call fcn.00449b80
add esp, 4
cmp dword [esp + 0x24], 0
je 0x4535b0
mov ebp, ebx
lea eax, [esp + 0x50]
push eax
call fcn.00449b80
add esp, 4
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x58]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
movzx ecx, byte [ebp]
movzx eax, word [eax + ecx*2]
test ebx, ebx
je 0x4535bf
mov ecx, ebx
mov dword [esp], eax
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
mov eax, dword [esp + 8]
add esp, 8
jmp 0x4535bf
call dword [0x4a34ec]
mov ebp, ebx
movzx ecx, byte [ebx]
movzx eax, word [eax + ecx*2]
test al, 4
sete byte [esp]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x4535e2
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
test esi, esi
je 0x453603
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x453603
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x453620
mov ecx, ebx
call fcn.00466250
push 0xc8
push ebx
call fcn.0046ae20
add esp, 8
cmp byte [esp], 0
jne 0x4537ec
mov ebx, ebp
inc ebx
cmp ebx, dword [esp + 0x78]
jb 0x4534d0
movzx eax, byte [esp + 0x14]
test al, 1
je 0x4537fb
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x20], ebx
je 0x453809
mov esi, dword [esp + 4]
cmp esi, ebx
setne cl
lea eax, [ebx - 1]
cmp eax, esi
seta dl
and dl, cl
cmp dl, 1
jne 0x453685
lea ecx, [esi + 1]
nop
movzx edx, byte [ecx - 1]
mov dh, byte [eax]
mov byte [ecx - 1], dh
mov byte [eax], dl
dec eax
lea edx, [ecx + 1]
cmp ecx, eax
mov ecx, edx
jb 0x453670
mov esi, dword [esp + 0x4c]
mov eax, dword [esi]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x4a24bc]
mov ecx, esi
call ebx
mov byte [esp + 0x13], al
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x20]
jae 0x45377b
lea edx, [esp + 0x15]
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 4]
mov dword [esp + 0x30], eax
xor ebx, ebx
xor ebp, ebp
xor esi, esi
nop word cs:[eax + eax]
mov eax, dword [esp + 0x1c]
test byte [esp + 0x14], 1
mov ecx, eax
cmove ecx, edx
cmp byte [ecx + ebp], 0
jle 0x453720
test byte [esp + 0x14], 1
cmove eax, edx
movsx eax, byte [eax + ebp]
cmp esi, eax
jne 0x453720
mov eax, dword [edi]
lea ecx, [eax + 1]
mov dword [edi], ecx
movzx ecx, byte [esp + 0x13]
mov byte [eax], cl
movzx eax, byte [esp + 0x14]
test al, 1
je 0x453726
mov eax, dword [esp + 0x18]
jmp 0x453728
mov dword [esp + 8], ebp
jmp 0x453734
shr eax, 1
dec eax
cmp ebp, eax
adc ebp, 0
mov dword [esp + 8], ebp
xor esi, esi
mov eax, dword [esp + 4]
movsx eax, byte [eax + ebx]
mov dword [esp], eax
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov ebp, dword [eax + 0x1c]
mov ecx, ebp
call dword [0x4a24bc]
mov ecx, edi
push dword [esp]
call ebp
mov edi, dword [esp + 0x84]
mov ecx, dword [edi]
lea edx, [ecx + 1]
mov dword [edi], edx
mov byte [ecx], al
inc esi
inc ebx
cmp dword [esp + 0x30], ebx
lea edx, [esp + 0x15]
mov ebp, dword [esp + 8]
jne 0x4536d0
mov ebx, dword [esp + 4]
mov eax, ebx
sub eax, dword [esp + 0x70]
add eax, dword [esp + 0x7c]
mov ebp, dword [edi]
cmp eax, ebp
setne cl
lea esi, [ebp - 1]
cmp esi, eax
seta dl
and dl, cl
cmp dl, 1
jne 0x453a06
mov dword [esp], esi
mov esi, dword [esp + 0x7c]
lea edx, [ebx + esi]
mov ecx, dword [esp + 0x70]
sub edx, ecx
inc edx
mov dword [esp + 8], ebp
lea edi, [ebp - 2]
cmp edx, edi
mov ebp, edi
cmova ebp, edx
not ebx
add ebx, ecx
add ebp, ebx
xor ecx, ecx
cmp ebp, esi
setne cl
add esi, ecx
sub ebp, esi
shr ebp, 1
add ecx, ebp
inc ecx
cmp ecx, 4
jae 0x45383b
mov esi, dword [esp]
mov edi, dword [esp + 0x84]
jmp 0x4539e1
mov ebx, ebp
movzx eax, byte [esp + 0x14]
test al, 1
jne 0x453644
shr eax, 1
test eax, eax
mov dword [esp + 0x20], ebx
jne 0x453654
mov esi, dword [edi]
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov ebp, ebx
mov ebx, dword [eax + 0x20]
mov ecx, ebx
call dword [0x4a24bc]
mov ecx, edi
mov edi, dword [esp + 0x84]
push esi
push ebp
mov esi, dword [esp + 0xc]
push esi
call ebx
mov eax, ebp
sub eax, esi
add dword [edi], eax
jmp 0x453a06
mov dword [esp + 0x30], ecx
cmp edx, edi
cmova edi, edx
add edi, ebx
xor edx, edx
mov esi, dword [esp + 0x7c]
cmp edi, esi
setne cl
cmp eax, dword [esp + 8]
mov ebp, dword [esp]
jae 0x453892
mov dl, cl
sub edi, esi
sub edi, edx
mov ecx, dword [esp + 4]
lea ebx, [ecx + edx]
shr edi, 1
add ebx, edi
add edi, edx
not edi
mov edx, dword [esp + 8]
add edx, edi
sub ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
add ecx, ebx
inc ecx
cmp edx, ecx
jae 0x453892
mov esi, ebp
mov edi, dword [esp + 0x84]
jmp 0x4539e1
xor ebx, ebx
mov ecx, dword [esp + 0x30]
cmp ecx, 0x10
jb 0x453952
mov ebx, ecx
and ebx, 0xfffffff0
mov edx, ebx
neg edx
xor esi, esi
pxor xmm0, xmm0
mov edi, eax
nop word cs:[eax + eax]
movdqu xmm1, xmmword [edi]
movdqu xmm2, xmmword [ebp + esi - 0xf]
movdqa xmm3, xmm2
punpcklbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpckhbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [edi], xmm2
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [ebp + esi - 0xf], xmm1
add edi, 0x10
add esi, 0xfffffff0
cmp edx, esi
jne 0x4538c0
cmp ecx, ebx
mov edi, dword [esp + 0x84]
je 0x453a06
test cl, 0xc
je 0x4539db
and ecx, 0xfffffffc
mov edx, ecx
neg edx
mov esi, ebp
sub esi, ecx
mov edi, ecx
add eax, ecx
mov ecx, dword [esp + 4]
add ecx, ebx
sub ecx, dword [esp + 0x70]
add ecx, dword [esp + 0x7c]
neg ebx
pxor xmm0, xmm0
nop word cs:[eax + eax]
movd xmm1, dword [ecx]
movd xmm2, dword [ebp + ebx - 3]
punpcklbw xmm2, xmm0
pshuflw xmm2, xmm2, 0x1b
packuswb xmm2, xmm2
movd dword [ecx], xmm2
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
packuswb xmm1, xmm1
movd dword [ebp + ebx - 3], xmm1
add ecx, 4
add ebx, 0xfffffffc
cmp edx, ebx
jne 0x453980
cmp dword [esp + 0x30], edi
mov edi, dword [esp + 0x84]
jne 0x4539e1
jmp 0x453a06
mov ebx, ebp
movzx eax, byte [esp + 0x14]
test al, 1
jne 0x453644
jmp 0x4537fb
add eax, ebx
sub ebp, ebx
mov esi, ebp
inc eax
nop word cs:[eax + eax]
movzx ecx, byte [eax - 1]
movzx edx, byte [esi]
mov byte [eax - 1], dl
mov byte [esi], cl
dec esi
lea ecx, [eax + 1]
cmp eax, esi
mov eax, ecx
jb 0x4539f0
mov eax, dword [esp + 0x20]
mov ecx, eax
sub ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
jae 0x453a66
xor ebp, ebp
xor ecx, ecx
nop word [eax + eax]
mov dword [esp], ecx
movzx ebx, byte [eax + ebp]
cmp bl, 0x2e
je 0x453a6a
mov esi, dword [esp + 0xc]
mov eax, dword [esi]
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [0x4a24bc]
movsx eax, bl
mov ecx, esi
push eax
call edi
mov edi, dword [esp + 0x84]
mov ecx, dword [edi]
lea edx, [ecx + 1]
mov dword [edi], edx
mov byte [ecx], al
mov ecx, dword [esp]
dec ecx
inc ebp
cmp dword [esp + 8], ecx
mov eax, dword [esp + 0x20]
jne 0x453a20
sub eax, ecx
mov ebp, eax
jmp 0x453a90
mov esi, dword [esp + 0x4c]
mov eax, dword [esi]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x4a24bc]
mov ecx, esi
call ebx
mov ebp, dword [esp + 0x20]
mov ecx, dword [edi]
lea edx, [ecx + 1]
mov dword [edi], edx
mov byte [ecx], al
sub ebp, dword [esp]
inc ebp
mov eax, dword [esp + 0x84]
mov edi, dword [eax]
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov esi, dword [eax + 0x20]
mov ecx, esi
call dword [0x4a24bc]
mov ecx, ebx
push edi
mov edi, dword [esp + 0x88]
push dword [esp + 0x7c]
push ebp
call esi
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov ecx, ebx
sub ecx, ebp
mov edx, eax
sub edx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
add esi, edx
add ecx, dword [edi]
cmp eax, ebx
mov dword [edi], ecx
cmove esi, ecx
mov eax, dword [esp + 0x80]
mov dword [eax], esi
test byte [esp + 0x14], 1
je 0x453b00
mov eax, dword [esp + 0x14]
and eax, 0xfffffffe
push eax
push dword [esp + 0x20]
call fcn.0046ae20
add esp, 8
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00440b50
call fcn.00440b50
jmp 0x453b25
mov edi, eax
lea ecx, [esp + 0x24]
call fcn.00449c30
jmp 0x453b3c
test esi, esi
je 0x453b49
lea ecx, [esp + 0x34]
call fcn.00449c30
jmp 0x453b82
lea ecx, [esp + 0x40]
call fcn.00449c30
jmp 0x453b93
test byte [esp + 0x14], 1
je 0x453bae
mov eax, dword [esp + 0x14]
and eax, 0xfffffffe
push eax
push dword [esp + 0x20]
call fcn.0046ae20
add esp, 8
push edi
call fcn.0046cac0
int3