Function at 0x53a820
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 0x53a8d6
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 + 0x18], eax
mov eax, ecx
sbb eax, dword [ebp + 4]
jne 0x53a8a7
jb 0x53a886
cmp dword [esp + 0x18], 0x1000000
jae 0x53a8a7
mov eax, dword [edx]
sub eax, dword [edi + 0x98]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 4]
sbb eax, dword [edi + 0x9c]
jne 0x53a8a7
cmp dword [esp + 0x18], 0x4000000
jb 0x53a8d6
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 0x53ba2e
mov eax, dword [ebx]
cmp eax, dword [ebx + 0x18]
jb 0x53a8e4
mov ecx, ebx
call fcn.0053a700
mov eax, dword [ebx]
lea edx, [eax + 1]
mov ch, byte [eax]
movzx eax, ch
mov dword [ebx], edx
mov ebp, eax
mov cl, byte [edx]
and ebp, 0x18
inc edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x5f], cl
mov dword [ebx], edx
cmp ebp, 0x18
jae 0x53ba29
mov cl, byte [edx]
inc edx
movzx esi, cl
xor cl, byte [esp + 0x5f]
xor cl, ch
mov dword [ebx], edx
movzx edi, cl
mov dword [esp + 0x14], edi
mov edi, edx
test ebp, ebp
je 0x53a95e
mov al, byte [edx]
inc edx
mov ch, al
mov dword [ebx], edx
xor ch, cl
movzx eax, al
shl eax, 8
movzx edi, ch
add esi, eax
mov dword [esp + 0x14], edi
mov edi, edx
cmp ebp, 8
jbe 0x53a964
mov cl, byte [edx]
lea edi, [edx + 1]
movzx eax, ch
movzx edx, cl
xor edx, eax
mov dword [ebx], edi
movzx eax, cl
shl eax, 0x10
add esi, eax
jmp 0x53a968
mov edx, dword [esp + 0x14]
jmp 0x53a96c
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp edx, 0x5a
jne 0x53ba29
mov ecx, eax
and ecx, 7
inc ecx
mov eax, ecx
shr eax, 3
add esi, eax
jne 0x53a98f
mov byte [ebx + 0xd], 1
xor ecx, ecx
mov esi, 1
dec esi
and ecx, 7
mov edx, edi
mov dword [ebx + 0x10], ecx
sub edx, dword [ebx + 0x20]
mov eax, 0
add edx, dword [ebx + 0x28]
mov ebp, esi
adc eax, dword [ebx + 0x2c]
add ebp, edx
mov ebx, 0
mov dword [esp + 0x60], eax
adc ebx, eax
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x320]
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x30], ebp
mov dword [ebx + 4], eax
cmp eax, edi
jbe 0x53a9fc
mov ebx, dword [esp + 0x14]
cmp ebx, dword [esp + 0x60]
mov ebx, dword [esp + 0x320]
ja 0x53a9f0
jb 0x53a9eb
cmp ebp, edx
jae 0x53a9f0
mov dword [ebx + 4], edi
jmp 0x53a9fc
sub eax, edi
cmp eax, esi
jbe 0x53a9fc
lea eax, [esi + edi]
mov dword [ebx + 4], eax
mov edx, dword [esp + 0x18]
mov eax, edx
mov ebp, dword [esp + 0x10]
shr eax, 6
and al, 1
mov byte [ebp + 0xd], al
test dl, dl
js 0x53aa32
cmp byte [ebp + 0x14], 0
jne 0x53aa23
lea eax, [ecx + esi]
test eax, eax
jne 0x53ba29
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 0x53aa8c
cmp edi, dword [ebx + 0x18]
jb 0x53aa4b
mov ecx, ebx
call fcn.0053a700
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
jb 0x53aa8c
ja 0x53ba29
cmp eax, edx
jb 0x53aa8c
cmp ecx, ebp
ja 0x53ba29
jb 0x53aa80
cmp eax, edx
ja 0x53ba29
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53ba29
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 + 0x18], edx
cmp edx, 0xf
jne 0x53ab1d
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 0x53ab19
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
inc esi
cmp esi, edi
jb 0x53ab12
jmp 0x53ab25
mov edx, dword [esp + 0x18]
mov byte [esp + esi + 0x15c], dl
inc esi
cmp esi, 0x14
jb 0x53aa38
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 0x53ab6d
ja 0x53ba29
cmp eax, edx
jb 0x53ab6d
cmp ecx, esi
ja 0x53ba29
jb 0x53ab61
cmp eax, edx
ja 0x53ba29
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53ba29
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x1c], xmm0
movups xmmword [esp + 0x2c], xmm0
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x4c], xmm0
nop word [eax + eax]
movzx eax, byte [esp + ecx + 0x15c]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x15d]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x15e]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x15f]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x160]
add ecx, 5
inc dword [esp + eax*4 + 0x1c]
cmp ecx, 0x14
jb 0x53ab90
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + eax*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 edx, [eax + ecx*2]
mov eax, dword [esp + 0x38]
mov ecx, edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x38], 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 + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], 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 + 0x40]
add ecx, eax
mov dword [esp + 0x40], 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 + 0x44]
add ecx, eax
mov dword [esp + 0x44], 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 + 0x48]
add ecx, eax
mov dword [esp + 0x48], 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 + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], 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 + 0x50]
mov dword [esp + 0x50], 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 + 0x54]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x54], edx
add edx, eax
mov dword [esp + 0x8c], ecx
mov eax, ecx
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x58]
add ecx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x90], ecx
cmp ecx, 0x8000
jne 0x53ba29
xor ebp, ebp
mov edi, 1
mov esi, dword [esp + edi*4 + 0x1c]
mov ecx, 6
sub ecx, edi
mov eax, ebp
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x1c], 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 0x53ad53
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0x14], ecx
nop dword [eax]
movzx edi, byte [esp + ebp + 0x15c]
test edi, edi
je 0x53ae0f
mov edx, dword [esp + edi*4 + 0x1c]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x1c], eax
cmp edi, 6
jb 0x53adb5
mov byte [esp + edx + 0x10c], cl
jmp 0x53ae0f
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 0x53ade5
mov ecx, dword [esp + 0x14]
movzx eax, cx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53ae0f
mov edi, dword [esp + 0x14]
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 0x53adf0
mov ecx, dword [esp + 0x14]
inc ebp
add ecx, 0x101
mov dword [esp + 0x14], ecx
cmp ebp, 0x14
jb 0x53ad90
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 + 0x14], eax
nop
mov esi, dword [ebx]
cmp esi, dword [ebx + 4]
jb 0x53ae94
cmp esi, dword [ebx + 0x18]
jb 0x53ae53
mov ecx, ebx
call fcn.0053a700
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 0x53ba29
jb 0x53ae94
cmp eax, edx
jb 0x53ae94
cmp ecx, edi
ja 0x53ba29
jb 0x53ae88
cmp eax, edx
ja 0x53ba29
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53ba29
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 0x53aee9
mov esi, 7
cmp edx, dword [esp + 0x70]
jb 0x53aecc
lea eax, [esp + 0x70]
lea eax, [eax + 4]
inc esi
cmp edx, dword [eax]
jae 0x53aec4
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 0x53aefe
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 + 0x18], eax
mov dword [esp + 0x60], edi
mov dword [ebx + 8], edi
mov dword [esp + 0x64], edx
cmp edx, 0x10
jae 0x53af2d
mov edx, dword [esp + 0x14]
mov byte [esp + ebp + 0x15c], cl
inc ebp
jmp 0x53afa2
mov ecx, dword [esp + 0x60]
mov edi, edx
movzx edx, byte [eax]
and edi, 1
movzx eax, byte [eax + 1]
shl edx, 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 + 0x18]
shr edx, cl
mov dword [ebx], eax
mov dword [ebx + 8], esi
lea eax, [edx + 3]
mov edx, dword [esp + 0x14]
lea eax, [eax + edi*2]
add eax, ebp
cmp eax, edx
cmova eax, edx
xor cl, cl
cmp dword [esp + 0x64], 0x12
jae 0x53af96
test ebp, ebp
je 0x53ba29
mov cl, byte [esp + ebp + 0x15b]
mov byte [esp + ebp + 0x15c], cl
inc ebp
cmp ebp, eax
jb 0x53af96
cmp ebp, edx
jb 0x53ae40
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 0x53afeb
ja 0x53ba29
cmp eax, esi
jb 0x53afeb
cmp ecx, edi
ja 0x53ba29
jb 0x53afdf
cmp eax, esi
ja 0x53ba29
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x10]
ja 0x53ba29
cmp edx, dword [ebx + 0x1c]
jb 0x53b000
ja 0x53ba29
cmp dword [ebx + 8], 0
jne 0x53ba29
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x1c], xmm0
movups xmmword [esp + 0x2c], xmm0
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x4c], xmm0
nop dword [eax]
movzx eax, byte [esp + ecx + 0x15c]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x15d]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x15e]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x15f]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x160]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x161]
add ecx, 6
inc dword [esp + eax*4 + 0x1c]
cmp ecx, 0x132
jb 0x53b020
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
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 ecx, [eax + ecx*2]
mov eax, dword [esp + 0x40]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x44]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x48]
mov dword [ebp + 0xc8], edx
mov ecx, edx
mov dword [ebp + 0xe4], edx
mov dword [esp + 0x48], 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 + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], 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 + 0x50]
add ecx, eax
mov dword [esp + 0x50], 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 + 0x54]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x54], edx
add edx, eax
mov dword [ebp + 0xd8], ecx
mov eax, ecx
sub eax, edx
mov dword [ebp + 0xf4], eax
mov eax, dword [esp + 0x58]
add ecx, eax
mov dword [ebp + 0xdc], ecx
mov dword [esp + 0x58], edx
mov dword [ebp + 0xe0], 0x8000
je 0x53b231
cmp ecx, 0x8000
jne 0x53ba29
xor ebx, ebx
mov edi, 1
nop word [eax + eax]
mov esi, dword [esp + edi*4 + 0x1c]
mov ecx, 0xa
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x1c], 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 0x53b190
xor edx, edx
xor ebx, ebx
movzx edi, byte [esp + ebx + 0x15c]
test edi, edi
je 0x53b222
mov esi, dword [esp + edi*4 + 0x1c]
lea eax, [esi + 1]
mov dword [esp + edi*4 + 0x1c], eax
cmp edi, 0xa
jb 0x53b1ea
mov word [ebp + esi*2 + 0x4f8], dx
jmp 0x53b222
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 0x53b210
mov dword [eax], edx
mov dword [esi - 4], edx
jmp 0x53b222
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 0x53b210
inc ebx
add edx, 0x10001
cmp ebx, 0x132
jb 0x53b1c4
cmp byte [ebp + 0x13], 0
jne 0x53b25b
lea ecx, [esp + 0x309]
mov edx, 0x3c
mov al, byte [ecx]
lea ecx, [ecx - 1]
mov byte [ecx + 0x11], al
sub edx, 1
jne 0x53b243
xorps xmm0, xmm0
movups xmmword [esp + 0x2ce], xmm0
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x1c], xmm0
movups xmmword [esp + 0x2c], xmm0
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x4c], xmm0
movzx eax, byte [esp + ecx + 0x28e]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x28f]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x290]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x291]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x292]
add ecx, 5
inc dword [esp + eax*4 + 0x1c]
cmp ecx, 0x50
jb 0x53b274
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
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 edx, [eax + ecx*2]
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0xf48], edx
mov ecx, edx
mov dword [ebp + 0xf70], edx
mov dword [esp + 0x3c], 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 + 0x40]
add ecx, eax
mov dword [esp + 0x40], 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 + 0x44]
add ecx, eax
mov dword [esp + 0x44], 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 + 0x48]
add ecx, eax
mov dword [esp + 0x48], 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 + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], 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 + 0x50]
add ecx, eax
mov dword [esp + 0x50], 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 + 0x54]
add ecx, eax
mov dword [esp + 0x54], 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 + 0x58]
add ecx, eax
mov dword [ebp + 0xf68], ecx
mov dword [esp + 0x58], edx
mov dword [ebp + 0xf6c], 0x8000
je 0x53b4e2
cmp ecx, 0x8000
jne 0x53ba29
xor ebx, ebx
mov edi, 1
nop dword [eax]
mov esi, dword [esp + edi*4 + 0x1c]
mov ecx, 7
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x1c], 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 0x53b420
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 0x53b4d2
mov edx, dword [esp + edi*4 + 0x1c]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x1c], eax
cmp edi, 7
jb 0x53b485
mov byte [edx + esi + 0x1020], bl
jmp 0x53b4d2
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 0x53b4b3
movzx eax, bx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53b4ce
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 0x53b4b3
mov esi, dword [esp + 0x10]
inc ebp
add ebx, 0x101
cmp ebp, 0x50
jb 0x53b460
mov ebp, dword [esp + 0x10]
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esp + 0x1c], xmm0
movups xmmword [esp + 0x2c], xmm0
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x4c], xmm0
nop dword [eax + eax]
movzx eax, byte [esp + ecx + 0x2ee]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x2ef]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x2f0]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x2f1]
add ecx, 4
inc dword [esp + eax*4 + 0x1c]
cmp ecx, 0x2c
jb 0x53b500
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
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 edx, [eax + ecx*2]
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0x11d4], edx
mov ecx, edx
mov dword [ebp + 0x11fc], edx
mov dword [esp + 0x3c], 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 + 0x40]
add ecx, eax
mov dword [esp + 0x40], 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 + 0x44]
add ecx, eax
mov dword [esp + 0x44], 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 + 0x48]
add ecx, eax
mov dword [esp + 0x48], 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 + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], 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 + 0x50]
add ecx, eax
mov dword [esp + 0x50], 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 + 0x54]
add ecx, eax
mov dword [esp + 0x54], 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 + 0x58]
add ecx, eax
mov dword [ebp + 0x11f4], ecx
mov dword [esp + 0x58], edx
mov dword [ebp + 0x11f8], 0x8000
je 0x53b752
cmp ecx, 0x8000
jne 0x53ba29
xor ebx, ebx
mov edi, 1
nop dword [eax]
mov esi, dword [esp + edi*4 + 0x1c]
mov ecx, 7
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x1c], 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 0x53b6a0
xor ebx, ebx
xor ebp, ebp
movzx edi, byte [esp + ebp + 0x2ee]
test edi, edi
je 0x53b742
mov edx, dword [esp + edi*4 + 0x1c]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x1c], eax
mov eax, dword [esp + 0x10]
cmp edi, 7
jb 0x53b6fd
mov byte [edx + eax + 0x12ac], bl
jmp 0x53b742
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 0x53b727
movzx eax, bx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53b742
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 0x53b727
inc ebp
add ebx, 0x101
cmp ebp, 0x2c
jb 0x53b6d4
mov ebp, dword [esp + 0x10]
mov byte [ebp + 0xc], 0
xor eax, eax
nop dword [eax + eax]
cmp byte [esp + eax + 0x2de], 4
jne 0x53b783
inc eax
cmp eax, 0x10
jb 0x53b760
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 + 0x1c], xmm0
movups xmmword [esp + 0x2c], xmm0
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x4c], xmm0
nop dword [eax]
movzx eax, byte [esp + ecx + 0x2de]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x2df]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x2e0]
inc dword [esp + eax*4 + 0x1c]
movzx eax, byte [esp + ecx + 0x2e1]
add ecx, 4
inc dword [esp + eax*4 + 0x1c]
cmp ecx, 0x10
jb 0x53b7a0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
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 edx, [eax + ecx*2]
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x10e8], edx
mov ecx, edx
mov dword [ebp + 0x1114], edx
mov dword [esp + 0x38], 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 + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], 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 + 0x40]
add ecx, eax
mov dword [esp + 0x40], 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 + 0x44]
add ecx, eax
mov dword [esp + 0x44], 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 + 0x48]
add ecx, eax
mov dword [esp + 0x48], 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 + 0x4c]
add ecx, eax
mov dword [esp + 0x4c], 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 + 0x50]
mov dword [esp + 0x50], 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 + 0x54]
add ecx, eax
add ecx, ecx
mov dword [esp + 0x54], edx
add edx, eax
mov dword [ebp + 0x1108], ecx
mov eax, ecx
sub eax, edx
mov dword [ebp + 0x1134], eax
mov eax, dword [esp + 0x58]
add ecx, eax
mov dword [ebp + 0x110c], ecx
mov dword [esp + 0x58], edx
mov dword [ebp + 0x1110], 0x8000
je 0x53ba12
cmp ecx, 0x8000
jne 0x53ba29
xor ebx, ebx
mov edi, 1
nop dword [eax + eax]
mov esi, dword [esp + edi*4 + 0x1c]
mov ecx, 6
sub ecx, edi
mov eax, ebx
shr eax, cl
shl esi, cl
mov dword [esp + edi*4 + 0x1c], 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 0x53b960
xor ebx, ebx
xor ebp, ebp
movzx edi, byte [esp + ebp + 0x2de]
test edi, edi
je 0x53ba02
mov edx, dword [esp + edi*4 + 0x1c]
lea eax, [edx + 1]
mov dword [esp + edi*4 + 0x1c], eax
mov eax, dword [esp + 0x10]
cmp edi, 6
jb 0x53b9bd
mov byte [edx + eax + 0x1188], bl
jmp 0x53ba02
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 0x53b9e7
movzx eax, bx
mov word [edx], ax
mov word [esi - 2], ax
jmp 0x53ba02
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 0x53b9e7
inc ebp
add ebx, 0x101
cmp ebp, 0x10
jb 0x53b994
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