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

Disassembly:
sub esp, 0x30c
push ebx
mov ebx, dword [esp + 0x314]
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], edi
cmp dword [edi + 0xc0], 0
je 0x53a2a6
mov eax, dword [ebx + 8]
lea ebp, [edi + 0x90]
mov esi, dword [ebx]
lea edx, [edi + 0x80]
sub esi, dword [ebx + 0x20]
add eax, 7
shr eax, 3
xor ecx, ecx
add esi, eax
adc ecx, ecx
add esi, dword [ebx + 0x28]
mov eax, esi
adc ecx, dword [ebx + 0x2c]
sub eax, dword [ebp]
mov dword [esp + 0x54], eax
mov eax, ecx
sbb eax, dword [ebp + 4]
jne 0x53a277
jb 0x53a256
cmp dword [esp + 0x54], 0x1000000
jae 0x53a277
mov eax, dword [edx]
sub eax, dword [edi + 0x98]
mov dword [esp + 0x54], eax
mov eax, dword [edx + 4]
sbb eax, dword [edi + 0x9c]
jne 0x53a277
cmp dword [esp + 0x54], 0x4000000
jb 0x53a2a6
mov eax, dword [edx]
mov dword [ebp], esi
mov esi, edi
mov dword [ebp + 4], ecx
mov ecx, dword [edx + 4]
mov dword [edi + 0x9c], ecx
mov ecx, dword [esi + 0xc0]
push edx
mov dword [edi + 0x98], eax
push ebp
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x53b3ee
mov eax, dword [ebx]
cmp eax, dword [ebx + 0x18]
jb 0x53a2b4
mov ecx, ebx
call fcn.0053a0d0
mov eax, dword [ebx]
mov cl, byte [eax]
inc eax
mov byte [esp + 0x5f], cl
movzx ecx, cl
mov dword [ebx], eax
mov ebp, ecx
mov dl, byte [eax]
and ebp, 0x18
mov byte [esp + 0x5e], dl
lea edx, [eax + 1]
mov dword [esp + 0x54], ecx
mov dword [ebx], edx
cmp ebp, 0x18
jae 0x53b3e9
mov cl, byte [edx]
inc edx
movzx esi, cl
xor cl, byte [esp + 0x5e]
xor cl, byte [esp + 0x5f]
mov dword [ebx], edx
movzx edi, cl
test ebp, ebp
je 0x53a324
mov al, byte [edx]
inc edx
mov ch, al
mov dword [ebx], edx
movzx eax, al
xor ch, cl
shl eax, 8
add esi, eax
movzx edi, ch
cmp ebp, 8
jbe 0x53a324
mov cl, byte [edx]
inc edx
movzx eax, ch
movzx edi, cl
xor edi, eax
mov dword [ebx], edx
movzx eax, cl
shl eax, 0x10
add esi, eax
cmp edi, 0x5a
jne 0x53b3e9
mov ecx, dword [esp + 0x54]
and ecx, 7
inc ecx
mov eax, ecx
shr eax, 3
add esi, eax
jne 0x53a349
mov byte [ebx + 0xd], 1
xor ecx, ecx
mov esi, 1
dec esi
and ecx, 7
mov edi, edx
mov dword [ebx + 0x10], ecx
sub edi, dword [ebx + 0x20]
mov eax, 0
add edi, dword [ebx + 0x28]
mov ebp, esi
adc eax, dword [ebx + 0x2c]
add ebp, edi
mov ebx, 0
mov dword [esp + 0x60], eax
adc ebx, eax
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x320]
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x30], ebp
mov dword [ebx + 4], eax
cmp eax, edx
jbe 0x53a3b6
mov ebx, dword [esp + 0x58]
cmp ebx, dword [esp + 0x60]
mov ebx, dword [esp + 0x320]
ja 0x53a3aa
jb 0x53a3a5
cmp ebp, edi
jae 0x53a3aa
mov dword [ebx + 4], edx
jmp 0x53a3b6
sub eax, edx
cmp eax, esi
jbe 0x53a3b6
lea eax, [esi + edx]
mov dword [ebx + 4], eax
mov edx, dword [esp + 0x54]
mov eax, edx
mov ebp, dword [esp + 0x10]
shr eax, 6
and al, 1
mov byte [ebp + 0xd], al
test dl, dl
js 0x53a3ec
cmp byte [ebp + 0x14], 0
jne 0x53a3dd
lea eax, [ecx + esi]
test eax, eax
jne 0x53b3e9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30c
ret 4
mov byte [ebp + 0x14], 0
xor esi, esi
mov edi, dword [ebx]
cmp edi, dword [ebx + 4]
jb 0x53a446
cmp edi, dword [ebx + 0x18]
jb 0x53a405
mov ecx, ebx
call fcn.0053a0d0
mov edi, dword [ebx]
xor ecx, ecx
mov ebp, dword [ebx + 0x34]
mov eax, edi
sub eax, dword [ebx + 0x20]
add eax, dword [ebx + 0x28]
mov edx, dword [ebx + 0x30]
adc ecx, dword [ebx + 0x2c]
cmp ecx, ebp
ja 0x53b3e9
jb 0x53a446
cmp eax, edx
jb 0x53a446
cmp ecx, ebp
ja 0x53b3e9
jb 0x53a43a
cmp eax, edx
ja 0x53b3e9
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53b3e9
movzx edx, byte [edi]
mov ecx, 0x10
mov ebp, dword [ebx + 8]
movzx eax, byte [edi + 1]
add ebp, 4
shl edx, 8
sub ecx, ebp
or edx, eax
mov eax, ebp
shr edx, cl
and ebp, 7
shr eax, 3
and edx, 0xf
add eax, edi
mov dword [ebx + 8], ebp
mov dword [esp + 0x60], eax
mov dword [ebx], eax
mov dword [esp + 0x54], edx
cmp edx, 0xf
jne 0x53a4db
movzx edi, byte [eax]
lea edx, [ebp + 4]
movzx eax, byte [eax + 1]
mov ecx, 0x10
shl edi, 8
sub ecx, edx
or edi, eax
mov eax, edx
shr eax, 3
and edx, 7
add eax, dword [esp + 0x60]
shr edi, cl
mov dword [ebx], eax
mov dword [ebx + 8], edx
and edi, 0xf
je 0x53a4d7
add edi, 2
add edi, esi
mov eax, edi
sub eax, esi
push eax
lea eax, [esp + 0x160]
add eax, esi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
nop dword [eax]
inc esi
cmp esi, edi
jb 0x53a4d0
jmp 0x53a4e3
mov edx, dword [esp + 0x54]
mov byte [esp + esi + 0x15c], dl
inc esi
cmp esi, 0x14
jb 0x53a3f2
mov eax, dword [ebx]
xor ecx, ecx
sub eax, dword [ebx + 0x20]
add eax, dword [ebx + 0x28]
mov esi, dword [ebx + 0x34]
adc ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x30]
cmp ecx, esi
jb 0x53a52b
ja 0x53b3e9
cmp eax, edx
jb 0x53a52b
cmp ecx, esi
ja 0x53b3e9
jb 0x53a51f
cmp eax, edx
ja 0x53b3e9
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53b3e9
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
movups xmmword [esp + 0x44], xmm0
movzx eax, byte [esp + ecx + 0x15c]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x15d]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x15e]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x15f]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x160]
add ecx, 5
inc dword [esp + eax*4 + 0x14]
cmp ecx, 0x14
jb 0x53a544
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x2c]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x30]
mov ecx, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x30], edx
add edx, eax
lea ecx, [eax + ecx*2]
mov eax, ecx
add ecx, ecx
shl eax, 8
mov dword [esp + 0x70], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x34], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 7
mov dword [esp + 0x74], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x38], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 6
mov dword [esp + 0x78], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 5
mov dword [esp + 0x7c], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 0x40], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 4
mov dword [esp + 0x80], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 0x44], edx
add edx, eax
lea eax, [ecx*8]
add ecx, ecx
mov dword [esp + 0x84], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], edx
add ecx, eax
mov dword [esp + 0x94], 0x8000
add edx, eax
lea eax, [ecx*4]
add ecx, ecx
mov dword [esp + 0x88], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x4c], edx
add edx, eax
mov dword [esp + 0x8c], ecx
mov eax, ecx
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x50]
add ecx, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x90], ecx
cmp ecx, 0x8000
jne 0x53b3e9
xor ebp, ebp
mov edi, 1
nop word [eax + eax]
mov esi, dword [esp + edi*4 + 0x14]
mov ecx, 6
sub ecx, edi
mov eax, ebp
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x14], eax
lea eax, [esp + 0xbc]
push esi
add eax, ebp
push edi
push eax
call sub.msvcrt.dll_memset
inc edi
add esp, 0xc
add ebp, esi
cmp edi, 6
jbe 0x53a710
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0x58], ecx
nop dword [eax]
movzx edi, byte [esp + ebp + 0x15c]
test edi, edi
je 0x53a7cf
mov edx, dword [esp + edi*4 + 0x14]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x14], eax
cmp edi, 6
jb 0x53a775
mov byte [esp + edx + 0x10c], cl
jmp 0x53a7cf
mov ecx, 6
lea esi, [esp + 0x10c]
sub ecx, edi
shl edx, cl
add edx, esi
mov esi, 1
shl esi, cl
add esi, edx
cmp edi, 4
jb 0x53a7a5
mov ecx, dword [esp + 0x58]
movzx eax, cx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53a7cf
mov edi, dword [esp + 0x58]
nop dword [eax]
movzx eax, di
mov ecx, eax
mov word [edx], ax
mov word [edx + 2], cx
mov word [edx + 4], cx
mov word [edx + 6], cx
add edx, 8
cmp edx, esi
jne 0x53a7b0
mov ecx, dword [esp + 0x58]
inc ebp
add ecx, 0x101
mov dword [esp + 0x58], ecx
cmp ebp, 0x14
jb 0x53a750
mov esi, dword [esp + 0x10]
xor ebp, ebp
mov eax, 0x1ae
mov ecx, 0x1be
cmp byte [esi + 0x13], 0
cmovne eax, ecx
mov dword [esp + 0x58], eax
nop
mov esi, dword [ebx]
cmp esi, dword [ebx + 4]
jb 0x53a854
cmp esi, dword [ebx + 0x18]
jb 0x53a813
mov ecx, ebx
call fcn.0053a0d0
mov esi, dword [ebx]
xor ecx, ecx
mov edi, dword [ebx + 0x34]
mov eax, esi
sub eax, dword [ebx + 0x20]
add eax, dword [ebx + 0x28]
mov edx, dword [ebx + 0x30]
adc ecx, dword [ebx + 0x2c]
cmp ecx, edi
ja 0x53b3e9
jb 0x53a854
cmp eax, edx
jb 0x53a854
cmp ecx, edi
ja 0x53b3e9
jb 0x53a848
cmp eax, edx
ja 0x53b3e9
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53b3e9
mov edx, dword [esi]
mov ecx, 0x11
mov eax, dword [ebx + 8]
sub ecx, eax
bswap edx
shr edx, cl
and edx, 0x7fff
mov ecx, edx
shr ecx, 9
cmp ecx, dword [esp + 0x6c]
jb 0x53a8a9
mov esi, 7
cmp edx, dword [esp + 0x70]
jb 0x53a88c
lea eax, [esp + 0x70]
lea eax, [eax + 4]
inc esi
cmp edx, dword [eax]
jae 0x53a884
mov edi, dword [ebx + 8]
mov ecx, 0xf
add edi, esi
sub ecx, esi
mov eax, edi
shr edx, cl
shr eax, 3
add dword [ebx], eax
mov eax, dword [ebx]
sub edx, dword [esp + esi*4 + 0x7c]
jmp 0x53a8be
movzx edi, byte [esp + ecx + 0xbc]
mov edx, ecx
add edi, eax
mov eax, edi
shr eax, 3
add eax, esi
mov dword [ebx], eax
mov cl, byte [esp + edx + 0x10c]
and edi, 7
movzx edx, cl
mov dword [esp + 0x54], eax
mov dword [esp + 0x60], edi
mov dword [ebx + 8], edi
mov dword [esp + 0x64], edx
cmp edx, 0x10
jae 0x53a8ed
mov edx, dword [esp + 0x58]
mov byte [esp + ebp + 0x15c], cl
inc ebp
jmp 0x53a962
mov ecx, dword [esp + 0x60]
mov edi, edx
movzx edx, byte [eax + 1]
and edi, 1
movzx eax, byte [eax]
shl eax, 8
or edx, eax
shl edi, 2
lea esi, [ecx + 3]
mov eax, 0xffff
shr eax, cl
add esi, edi
and edx, eax
mov ecx, 0x10
sub ecx, esi
mov eax, esi
shr eax, 3
and esi, 7
add eax, dword [esp + 0x54]
shr edx, cl
mov dword [ebx], eax
mov dword [ebx + 8], esi
lea eax, [edx + 3]
mov edx, dword [esp + 0x58]
lea eax, [eax + edi*2]
add eax, ebp
cmp eax, edx
cmova eax, edx
xor cl, cl
cmp dword [esp + 0x64], 0x12
jae 0x53a956
test ebp, ebp
je 0x53b3e9
mov cl, byte [esp + ebp + 0x15b]
mov byte [esp + ebp + 0x15c], cl
inc ebp
cmp ebp, eax
jb 0x53a956
cmp ebp, edx
jb 0x53a800
mov edx, dword [ebx]
xor ecx, ecx
mov edi, dword [ebx + 0x34]
mov eax, edx
sub eax, dword [ebx + 0x20]
add eax, dword [ebx + 0x28]
mov esi, dword [ebx + 0x30]
adc ecx, dword [ebx + 0x2c]
cmp ecx, edi
jb 0x53a9ab
ja 0x53b3e9
cmp eax, esi
jb 0x53a9ab
cmp ecx, edi
ja 0x53b3e9
jb 0x53a99f
cmp eax, esi
ja 0x53b3e9
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53b3e9
cmp edx, dword [ebx + 0x1c]
jb 0x53a9c0
ja 0x53b3e9
cmp dword [ebx + 8], 0
jne 0x53b3e9
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
movups xmmword [esp + 0x44], xmm0
nop dword [eax]
movzx eax, byte [esp + ecx + 0x15c]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x15d]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x15e]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x15f]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x160]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x161]
add ecx, 6
inc dword [esp + eax*4 + 0x14]
cmp ecx, 0x132
jb 0x53a9e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x30]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x34]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x38]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x3c]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x40]
mov dword [ebp + 0xc8], edx
mov ecx, edx
mov dword [ebp + 0xe4], edx
mov dword [esp + 0x40], edx
add edx, eax
lea ecx, [eax + ecx*2]
mov eax, ecx
add ecx, ecx
shl eax, 4
mov dword [ebp + 0xcc], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xe8], eax
mov eax, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 0x44], edx
add edx, eax
lea eax, [ecx*8]
add ecx, ecx
mov dword [ebp + 0xd0], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xec], eax
mov eax, dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x48], edx
add edx, eax
lea eax, [ecx*4]
add ecx, ecx
mov dword [ebp + 0xd4], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf0], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x4c], edx
add edx, eax
mov dword [ebp + 0xd8], ecx
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf4], eax
mov eax, dword [esp + 0x50]
add ecx, eax
mov dword [ebp + 0xdc], ecx
mov dword [esp + 0x50], edx
mov dword [ebp + 0xe0], 0x8000
je 0x53abf1
cmp ecx, 0x8000
jne 0x53b3e9
xor ebx, ebx
mov edi, 1
nop word [eax + eax]
mov esi, dword [esp + edi*4 + 0x14]
mov ecx, 0xa
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x14], eax
lea eax, [ebp + 0xf8]
push esi
add eax, ebx
push edi
push eax
call sub.msvcrt.dll_memset
inc edi
add esp, 0xc
add ebx, esi
cmp edi, 0xa
jbe 0x53ab50
xor edx, edx
xor ebx, ebx
movzx edi, byte [esp + ebx + 0x15c]
test edi, edi
je 0x53abe2
mov esi, dword [esp + edi*4 + 0x14]
lea eax, [esi + 1]
mov dword [esp + edi*4 + 0x14], eax
cmp edi, 0xa
jb 0x53abaa
mov word [ebp + esi*2 + 0x4f8], dx
jmp 0x53abe2
mov ecx, 0xb
lea eax, [ebp + 0x4f8]
sub ecx, edi
shl esi, cl
add eax, esi
mov esi, 1
shl esi, cl
add esi, eax
cmp edi, 8
jb 0x53abd0
mov dword [eax], edx
mov dword [esi - 4], edx
jmp 0x53abe2
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
add eax, 0x10
cmp eax, esi
jne 0x53abd0
inc ebx
add edx, 0x10001
cmp ebx, 0x132
jb 0x53ab84
cmp byte [ebp + 0x13], 0
jne 0x53ac1b
lea ecx, [esp + 0x309]
mov edx, 0x3c
mov al, byte [ecx]
lea ecx, [ecx - 1]
mov byte [ecx + 0x11], al
sub edx, 1
jne 0x53ac03
xorps xmm0, xmm0
movups xmmword [esp + 0x2ce], xmm0
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
movups xmmword [esp + 0x44], xmm0
movzx eax, byte [esp + ecx + 0x28e]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x28f]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x290]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x291]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x292]
add ecx, 5
inc dword [esp + eax*4 + 0x14]
cmp ecx, 0x50
jb 0x53ac34
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x30]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x34]
mov dword [ebp + 0xf48], edx
mov ecx, edx
mov dword [ebp + 0xf70], edx
mov dword [esp + 0x34], edx
add edx, eax
lea ecx, [eax + ecx*2]
mov eax, ecx
add ecx, ecx
shl eax, 7
mov dword [ebp + 0xf4c], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf74], eax
mov eax, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x38], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 6
mov dword [ebp + 0xf50], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf78], eax
mov eax, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 5
mov dword [ebp + 0xf54], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf7c], eax
mov eax, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 0x40], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 4
mov dword [ebp + 0xf58], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf80], eax
mov eax, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 0x44], edx
add edx, eax
lea eax, [ecx*8]
add ecx, ecx
mov dword [ebp + 0xf5c], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf84], eax
mov eax, dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x48], edx
add edx, eax
lea eax, [ecx*4]
add ecx, ecx
mov dword [ebp + 0xf60], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf88], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], edx
add edx, eax
add ecx, ecx
mov eax, ecx
mov dword [ebp + 0xf64], ecx
sub eax, edx
mov dword [ebp + 0xf8c], eax
mov eax, dword [esp + 0x50]
add ecx, eax
mov dword [ebp + 0xf68], ecx
mov dword [esp + 0x50], edx
mov dword [ebp + 0xf6c], 0x8000
je 0x53aea2
cmp ecx, 0x8000
jne 0x53b3e9
xor ebx, ebx
mov edi, 1
nop dword [eax]
mov esi, dword [esp + edi*4 + 0x14]
mov ecx, 7
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x14], eax
lea eax, [ebp + 0xf90]
push esi
add eax, ebx
push edi
push eax
call sub.msvcrt.dll_memset
inc edi
add esp, 0xc
add ebx, esi
cmp edi, 7
jbe 0x53ade0
mov esi, dword [esp + 0x10]
xor ebx, ebx
xor ebp, ebp
nop dword [eax + eax]
movzx edi, byte [esp + ebp + 0x28e]
test edi, edi
je 0x53ae92
mov edx, dword [esp + edi*4 + 0x14]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x14], eax
cmp edi, 7
jb 0x53ae45
mov byte [edx + esi + 0x1020], bl
jmp 0x53ae92
mov eax, dword [esp + 0x10]
mov ecx, 7
sub ecx, edi
add eax, 0x1020
shl edx, cl
mov esi, 1
add edx, eax
shl esi, cl
add esi, edx
cmp edi, 5
jb 0x53ae73
movzx eax, bx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53ae8e
movzx eax, bx
mov ecx, eax
mov word [edx], ax
mov word [edx + 2], cx
mov word [edx + 4], cx
mov word [edx + 6], cx
add edx, 8
cmp edx, esi
jne 0x53ae73
mov esi, dword [esp + 0x10]
inc ebp
add ebx, 0x101
cmp ebp, 0x50
jb 0x53ae20
mov ebp, dword [esp + 0x10]
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
movups xmmword [esp + 0x44], xmm0
nop dword [eax + eax]
movzx eax, byte [esp + ecx + 0x2ee]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x2ef]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x2f0]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x2f1]
add ecx, 4
inc dword [esp + eax*4 + 0x14]
cmp ecx, 0x2c
jb 0x53aec0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x30]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x11d4], edx
mov ecx, edx
mov dword [ebp + 0x11fc], edx
mov dword [esp + 0x34], edx
add edx, eax
lea ecx, [eax + ecx*2]
mov eax, ecx
add ecx, ecx
shl eax, 7
mov dword [ebp + 0x11d8], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1200], eax
mov eax, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x38], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 6
mov dword [ebp + 0x11dc], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1204], eax
mov eax, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 5
mov dword [ebp + 0x11e0], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1208], eax
mov eax, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 0x40], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 4
mov dword [ebp + 0x11e4], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x120c], eax
mov eax, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 0x44], edx
add edx, eax
lea eax, [ecx*8]
add ecx, ecx
mov dword [ebp + 0x11e8], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1210], eax
mov eax, dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x48], edx
add edx, eax
lea eax, [ecx*4]
add ecx, ecx
mov dword [ebp + 0x11ec], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1214], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], edx
add edx, eax
add ecx, ecx
mov eax, ecx
mov dword [ebp + 0x11f0], ecx
sub eax, edx
mov dword [ebp + 0x1218], eax
mov eax, dword [esp + 0x50]
add ecx, eax
mov dword [ebp + 0x11f4], ecx
mov dword [esp + 0x50], edx
mov dword [ebp + 0x11f8], 0x8000
je 0x53b112
cmp ecx, 0x8000
jne 0x53b3e9
xor ebx, ebx
mov edi, 1
nop dword [eax]
mov esi, dword [esp + edi*4 + 0x14]
mov ecx, 7
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x14], eax
lea eax, [ebx + 0x121c]
push esi
add eax, ebp
push edi
push eax
call sub.msvcrt.dll_memset
inc edi
add esp, 0xc
add ebx, esi
cmp edi, 7
jbe 0x53b060
xor ebx, ebx
xor ebp, ebp
movzx edi, byte [esp + ebp + 0x2ee]
test edi, edi
je 0x53b102
mov edx, dword [esp + edi*4 + 0x14]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x14], eax
mov eax, dword [esp + 0x10]
cmp edi, 7
jb 0x53b0bd
mov byte [edx + eax + 0x12ac], bl
jmp 0x53b102
mov ecx, 7
add eax, 0x12ac
sub ecx, edi
mov esi, 1
shl edx, cl
add edx, eax
shl esi, cl
add esi, edx
cmp edi, 5
jb 0x53b0e7
movzx eax, bx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53b102
movzx eax, bx
mov ecx, eax
mov word [edx], ax
mov word [edx + 2], cx
mov word [edx + 4], cx
mov word [edx + 6], cx
add edx, 8
cmp edx, esi
jne 0x53b0e7
inc ebp
add ebx, 0x101
cmp ebp, 0x2c
jb 0x53b094
mov ebp, dword [esp + 0x10]
mov byte [ebp + 0xc], 0
xor eax, eax
nop dword [eax + eax]
cmp byte [esp + eax + 0x2de], 4
jne 0x53b143
inc eax
cmp eax, 0x10
jb 0x53b120
pop edi
pop esi
mov byte [ebp + 0x14], 1
xor eax, eax
pop ebp
pop ebx
add esp, 0x30c
ret 4
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
movups xmmword [esp + 0x44], xmm0
nop dword [eax]
movzx eax, byte [esp + ecx + 0x2de]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x2df]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x2e0]
inc dword [esp + eax*4 + 0x14]
movzx eax, byte [esp + ecx + 0x2e1]
add ecx, 4
inc dword [esp + eax*4 + 0x14]
cmp ecx, 0x10
jb 0x53b160
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x2c]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x10e8], edx
mov ecx, edx
mov dword [ebp + 0x1114], edx
mov dword [esp + 0x30], edx
add edx, eax
lea ecx, [eax + ecx*2]
mov eax, ecx
add ecx, ecx
shl eax, 8
mov dword [ebp + 0x10ec], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1118], eax
mov eax, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x34], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 7
mov dword [ebp + 0x10f0], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x111c], eax
mov eax, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x38], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 6
mov dword [ebp + 0x10f4], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1120], eax
mov eax, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 5
mov dword [ebp + 0x10f8], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1124], eax
mov eax, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 0x40], edx
add edx, eax
mov eax, ecx
add ecx, ecx
shl eax, 4
mov dword [ebp + 0x10fc], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1128], eax
mov eax, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 0x44], edx
add edx, eax
lea eax, [ecx*8]
add ecx, ecx
mov dword [ebp + 0x1100], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x112c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], edx
add ecx, eax
add edx, eax
lea eax, [ecx*4]
add ecx, ecx
mov dword [ebp + 0x1104], eax
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1130], eax
mov eax, dword [esp + 0x4c]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x4c], edx
add edx, eax
mov dword [ebp + 0x1108], ecx
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1134], eax
mov eax, dword [esp + 0x50]
add ecx, eax
mov dword [ebp + 0x110c], ecx
mov dword [esp + 0x50], edx
mov dword [ebp + 0x1110], 0x8000
je 0x53b3d2
cmp ecx, 0x8000
jne 0x53b3e9
xor ebx, ebx
mov edi, 1
nop dword [eax + eax]
mov esi, dword [esp + edi*4 + 0x14]
mov ecx, 6
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x14], eax
lea eax, [ebx + 0x1138]
push esi
add eax, ebp
push edi
push eax
call sub.msvcrt.dll_memset
inc edi
add esp, 0xc
add ebx, esi
cmp edi, 6
jbe 0x53b320
xor ebx, ebx
xor ebp, ebp
movzx edi, byte [esp + ebp + 0x2de]
test edi, edi
je 0x53b3c2
mov edx, dword [esp + edi*4 + 0x14]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x14], eax
mov eax, dword [esp + 0x10]
cmp edi, 6
jb 0x53b37d
mov byte [edx + eax + 0x1188], bl
jmp 0x53b3c2
mov ecx, 6
add eax, 0x1188
sub ecx, edi
mov esi, 1
shl edx, cl
add edx, eax
shl esi, cl
add esi, edx
cmp edi, 4
jb 0x53b3a7
movzx eax, bx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53b3c2
movzx eax, bx
mov ecx, eax
mov word [edx], ax
mov word [edx + 2], cx
mov word [edx + 4], cx
mov word [edx + 6], cx
add edx, 8
cmp edx, esi
jne 0x53b3a7
inc ebp
add ebx, 0x101
cmp ebp, 0x10
jb 0x53b354
mov ebp, dword [esp + 0x10]
pop edi
pop esi
mov byte [ebp + 0xc], 1
xor eax, eax
mov byte [ebp + 0x14], 1
pop ebp
pop ebx
add esp, 0x30c
ret 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30c
ret 4