Function at 0x53d160
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
mov ebx, dword [ecx]
mov dword [esp], edx
cmp ebx, 0x80000000
je 0x53da4a
mov ebp, dword [ecx + 8]
mov esi, ecx
mov dword [esp + 0x14], ecx
test ebp, ebp
je 0x53d2a7
mov edi, dword [esi + 4]
cmp ebp, 1
mov edx, dword [edi + 8]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
jne 0x53d2d0
test edx, edx
je 0x53d43d
cmp byte [esp], 0
jne 0x53d2b3
mov eax, dword [edi + 4]
mov ecx, ebp
mov esi, 1
mov ebx, edi
shl ecx, 4
add ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, edx
mov dword [esp + 8], eax
add eax, edx
mov dword [esp + 4], eax
xor eax, eax
mov dword [esp + 0x1c], ebp
jmp 0x53d200
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
xor esi, esi
mov al, 1
test ecx, ecx
je 0x53d5ef
test al, 1
je 0x53d210
cmp ebx, dword [esp + 0x20]
jne 0x53d226
jmp 0x53d554
mov eax, dword [esp + 0x20]
sub eax, ebx
shr eax, 4
cmp eax, esi
jbe 0x53d554
shl esi, 4
add ebx, esi
mov eax, edx
sub eax, ecx
jb 0x53dd93
mov esi, dword [ebx + 8]
test esi, esi
je 0x53d570
mov edi, dword [ebx + 4]
add ebx, 0x10
add eax, dword [esp + 8]
mov ebp, 0xffffffff
mov dword [esp + 0xc], ebx
xor ebx, ebx
mov edx, dword [esp + 4]
add edi, esi
sub edx, eax
mov eax, esi
neg eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
nop word cs:[eax + eax]
nop
lea edx, [ecx + ebp]
cmp edx, 0xffffffff
je 0x53d1e0
movzx edx, byte [edi + ebp]
mov esi, dword [esp + 4]
cmp dl, byte [esi + ebp]
jne 0x53d2a0
inc ebx
mov edx, eax
dec ebp
add edx, ebx
jne 0x53d270
mov ecx, dword [esp + 0x24]
jmp 0x53d1e4
mov ecx, ebx
jmp 0x53d1e4
xor eax, eax
cmp byte [esp], 0
je 0x53d6cb
mov ecx, esi
call 0x53dde0
cmp dword [esi], 0x80000000
jne 0x53d48f
mov edi, 0x80000001
jmp 0x53d726
lea esi, [ebp + 0xfffffff]
xor ecx, ecx
mov eax, esi
and eax, 0xfffffff
cmp eax, 8
jb 0x53d415
movd xmm0, dword [esp + 0x18]
and esi, 7
mov ecx, eax
lea edx, [edi + 0x88]
sub ecx, esi
mov edi, ecx
pshufd xmm1, xmm0, 0
movdqa xmm0, xmmword [0x7d4550]
movdqa xmm2, xmm1
nop
movd xmm3, dword [edx - 0x40]
movd xmm5, dword [edx - 0x50]
movd xmm4, dword [edx - 0x70]
movd xmm6, dword [edx - 0x20]
movdqa xmm7, xmm1
pxor xmm1, xmm0
punpckldq xmm5, xmm3
movd xmm3, dword [edx - 0x60]
punpckldq xmm4, xmm3
movd xmm3, dword [edx]
punpcklqdq xmm4, xmm5
movd xmm5, dword [edx - 0x10]
punpckldq xmm5, xmm3
movd xmm3, dword [edx - 0x30]
sub edx, 0xffffff80
add edi, 0xfffffff8
punpckldq xmm3, xmm6
movdqa xmm6, xmm4
pxor xmm6, xmm0
punpcklqdq xmm3, xmm5
pcmpgtd xmm6, xmm1
pand xmm7, xmm6
pandn xmm6, xmm4
movdqa xmm4, xmm2
pxor xmm2, xmm0
movdqa xmm1, xmm6
movdqa xmm6, xmm3
pxor xmm6, xmm0
por xmm1, xmm7
pcmpgtd xmm6, xmm2
pand xmm4, xmm6
pandn xmm6, xmm3
movdqa xmm2, xmm6
por xmm2, xmm4
jne 0x53d310
movdqa xmm4, xmm1
movdqa xmm3, xmm2
mov edi, dword [esp + 0x10]
test esi, esi
pxor xmm4, xmm0
pxor xmm3, xmm0
pcmpgtd xmm3, xmm4
pand xmm1, xmm3
pandn xmm3, xmm2
por xmm3, xmm1
pshufd xmm2, xmm3, 0xee
movdqa xmm4, xmm3
movdqa xmm1, xmm2
pxor xmm4, xmm0
pxor xmm1, xmm0
pcmpgtd xmm1, xmm4
pand xmm3, xmm1
pandn xmm1, xmm2
por xmm1, xmm3
movdqa xmm3, xmm1
pshufd xmm2, xmm1, 0x55
pxor xmm3, xmm0
pxor xmm0, xmm2
pcmpgtd xmm0, xmm3
pand xmm1, xmm0
pandn xmm0, xmm2
por xmm0, xmm1
movd edx, xmm0
je 0x53d42d
sub eax, ecx
shl ecx, 4
lea ecx, [ecx + edi + 0x18]
nop
mov esi, dword [ecx]
cmp edx, esi
cmovae edx, esi
add ecx, 0x10
dec eax
jne 0x53d420
test edx, edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jne 0x53d1a8
lea esi, [edi + 4]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x53d456
add esi, 0x10
dec ebp
je 0x53d46a
cmp dword [esi - 4], 0
je 0x53d450
push dword [esi]
push 0
push dword [0x94bf18]
call edi
jmp 0x53d450
test ebx, ebx
je 0x53d480
push dword [esp + 0x10]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x14]
mov dword [eax], 0x80000000
jmp 0x53da4a
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ebp
test ecx, ecx
je 0x53d54d
mov edi, dword [esi + 4]
mov esi, 1
mov eax, dword [edi + 4]
mov ebp, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
shl ecx, 4
xor eax, eax
add ecx, edi
mov dword [esp + 4], ecx
mov ecx, ebp
mov dword [esp + 0x10], edi
jmp 0x53d4de
mov ecx, ebx
xor esi, esi
mov al, 1
test ebx, ebx
je 0x53d5e7
test al, 1
je 0x53d4f0
cmp edi, dword [esp + 4]
jne 0x53d502
jmp 0x53d57c
mov eax, dword [esp + 4]
sub eax, edi
shr eax, 4
cmp eax, esi
jbe 0x53d57c
shl esi, 4
add edi, esi
cmp ecx, ebp
ja 0x53dd9f
mov eax, dword [edi + 8]
mov esi, dword [esp + 8]
cmp eax, ecx
cmovb ecx, eax
test ecx, ecx
je 0x53d5e5
mov edx, dword [edi + 4]
add edi, 0x10
xor ebx, ebx
nop word cs:[eax + eax]
movzx eax, byte [edx + ebx]
cmp al, byte [esi + ebx]
jne 0x53d4d0
inc ebx
cmp ecx, ebx
jne 0x53d530
mov ebx, ecx
xor esi, esi
mov al, 1
test ebx, ebx
jne 0x53d4de
jmp 0x53d5e7
xor eax, eax
jmp 0x53d6cb
mov eax, edx
sub eax, ecx
jb 0x53ddc8
mov esi, dword [esp + 8]
mov dword [esp + 0xc], ebp
mov edx, dword [esp + 0x14]
add esi, eax
mov eax, ebp
jmp 0x53d594
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
xor esi, esi
jmp 0x53d5ef
cmp ecx, ebp
ja 0x53ddd4
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 8]
cmp eax, 2
jb 0x53d5dd
lea eax, [ecx - 1]
cmp eax, 2
ja 0x53d5dd
cmp byte [esp], 0
je 0x53d5dd
movzx eax, byte [esi]
cmp byte [eax + str.743210_._g], 0xc7
ja 0x53d5dd
mov eax, dword [esp + 0xc]
add edi, 8
shl eax, 4
jmp 0x53d5cc
add edi, 0x10
add eax, 0xfffffff0
je 0x53daaa
cmp dword [edi], 2
jb 0x53d5c0
mov byte [edi + 4], 0
mov dword [edi], 1
jmp 0x53d5c0
mov ebp, dword [esp + 0xc]
mov esi, ecx
jmp 0x53d5ef
xor esi, esi
mov ebp, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov eax, ebp
mov ecx, edi
shl eax, 4
nop word cs:[eax + eax]
test eax, eax
je 0x53d61f
add eax, 0xfffffff0
cmp byte [ecx + 0xc], 0
lea ecx, [ecx + 0x10]
jne 0x53d600
xor eax, eax
cmp esi, 2
setb cl
cmp esi, 4
jbe 0x53d630
jmp 0x53d63f
cmp ebp, 0x11
setb al
cmp esi, 2
setb cl
cmp esi, 4
ja 0x53d63f
or cl, al
je 0x53d63f
mov esi, dword [esp + 0x14]
mov eax, ebp
jmp 0x53d6cb
cmp byte [esp], 0
je 0x53d664
add edi, 8
shl ebp, 4
jmp 0x53d658
add edi, 0x10
add ebp, 0xfffffff0
je 0x53d697
cmp dword [edi], esi
jbe 0x53d650
mov byte [edi + 4], 0
mov dword [edi], esi
jmp 0x53d650
add edi, 0xc
shl ebp, 4
jmp 0x53d678
add edi, 0x10
add ebp, 0xfffffff0
je 0x53d697
mov eax, dword [edi - 4]
sub eax, esi
jbe 0x53d670
mov byte [edi], 0
mov ecx, dword [edi - 8]
add eax, ecx
push esi
push eax
push ecx
call fcn.007bd9b0
add esp, 0xc
mov dword [edi - 4], esi
jmp 0x53d670
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.005010c0
cmp dword [esi], 0x80000000
je 0x53ddab
mov eax, dword [esi + 8]
cmp eax, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], 1
jne 0x53ddb3
mov eax, 1
mov edx, dword [esi + 4]
mov ecx, eax
shl ecx, 4
mov esi, edx
nop word cs:[eax + eax]
nop
test ecx, ecx
je 0x53d6f7
add ecx, 0xfffffff0
cmp byte [esi + 0xc], 0
lea esi, [esi + 0x10]
jne 0x53d6e0
mov edi, 0x80000001
jmp 0x53d714
lea ecx, [esp + 0x34]
push eax
call fcn.0053c330
add esp, 4
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x14]
mov ebx, dword [esi]
cmp ebx, 0x80000000
jne 0x53d77e
mov eax, dword [esi + 4]
mov ebp, dword [esi + 8]
mov ebx, 0x80000000
mov dword [esp + 4], eax
cmp edi, 0x80000001
je 0x53da4a
cmp ebx, 0x80000000
je 0x53da3a
test ebp, ebp
mov dword [esp], ebx
mov dword [esp + 8], edi
je 0x53da1a
mov esi, dword [esp + 4]
cmp ebp, 1
mov ecx, dword [esi + 8]
jne 0x53d85d
mov edi, dword [esp + 8]
cmp ecx, 2
jbe 0x53d9e6
jmp 0x53da64
mov ebp, dword [esi + 8]
cmp ebp, 0xa
jbe 0x53dc62
cmp byte [esp], 0
je 0x53d7b9
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x53d7a8
add eax, 0x10
add ebp, 0xfffffff0
je 0x53d801
cmp dword [eax], 6
jb 0x53d7a0
mov byte [eax + 4], 0
mov dword [eax], 5
jmp 0x53d7a0
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x53d7d8
add eax, 0x10
add ebp, 0xfffffff0
je 0x53d801
mov ecx, dword [eax - 4]
cmp ecx, 6
jb 0x53d7d0
mov byte [eax], 0
mov edx, dword [eax - 8]
mov esi, dword [ecx + edx - 5]
movzx ecx, byte [ecx + edx - 1]
mov dword [edx], esi
mov esi, dword [esp + 0x14]
mov byte [edx + 4], cl
mov dword [eax - 4], 5
jmp 0x53d7d0
cmp byte [esp], 0
je 0x53d80e
mov ecx, esi
call 0x53dde0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x53d726
mov ebp, dword [esi + 8]
cmp ebp, 0xb
jb 0x53dc62
cmp byte [esp], 0
je 0x53dad6
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x53d84c
add eax, 0x10
add ebp, 0xfffffff0
je 0x53db15
cmp dword [eax], 5
jb 0x53d840
mov byte [eax + 4], 0
mov dword [eax], 4
jmp 0x53d840
lea ebx, [ebp + 0xfffffff]
mov edi, dword [esp + 8]
xor edx, edx
mov eax, ebx
and eax, 0xfffffff
cmp eax, 8
jb 0x53d9b4
movd xmm0, ecx
and ebx, 7
mov edx, eax
add esi, 0x88
pshufd xmm1, xmm0, 0
movdqa xmm0, xmmword [0x7d4550]
sub edx, ebx
mov dword [esp + 0x18], ebx
mov ecx, edx
movdqa xmm2, xmm1
nop word cs:[eax + eax]
nop dword [eax + eax]
movd xmm3, dword [esi - 0x40]
movd xmm5, dword [esi - 0x50]
movd xmm4, dword [esi - 0x70]
movd xmm6, dword [esi - 0x20]
movdqa xmm7, xmm1
pxor xmm1, xmm0
punpckldq xmm5, xmm3
movd xmm3, dword [esi - 0x60]
punpckldq xmm4, xmm3
movd xmm3, dword [esi]
punpcklqdq xmm4, xmm5
movd xmm5, dword [esi - 0x10]
punpckldq xmm5, xmm3
movd xmm3, dword [esi - 0x30]
sub esi, 0xffffff80
add ecx, 0xfffffff8
punpckldq xmm3, xmm6
movdqa xmm6, xmm4
pxor xmm6, xmm0
punpcklqdq xmm3, xmm5
pcmpgtd xmm6, xmm1
pand xmm7, xmm6
pandn xmm6, xmm4
movdqa xmm4, xmm2
pxor xmm2, xmm0
movdqa xmm1, xmm6
movdqa xmm6, xmm3
pxor xmm6, xmm0
por xmm1, xmm7
pcmpgtd xmm6, xmm2
pand xmm4, xmm6
pandn xmm6, xmm3
movdqa xmm2, xmm6
por xmm2, xmm4
jne 0x53d8b0
movdqa xmm4, xmm1
movdqa xmm3, xmm2
cmp dword [esp + 0x18], 0
pxor xmm4, xmm0
pxor xmm3, xmm0
pcmpgtd xmm3, xmm4
pand xmm1, xmm3
pandn xmm3, xmm2
por xmm3, xmm1
pshufd xmm2, xmm3, 0xee
movdqa xmm4, xmm3
movdqa xmm1, xmm2
pxor xmm4, xmm0
pxor xmm1, xmm0
pcmpgtd xmm1, xmm4
pand xmm3, xmm1
pandn xmm1, xmm2
por xmm1, xmm3
movdqa xmm3, xmm1
pshufd xmm2, xmm1, 0x55
pxor xmm3, xmm0
pxor xmm0, xmm2
pcmpgtd xmm0, xmm3
pand xmm1, xmm0
pandn xmm0, xmm2
por xmm0, xmm1
movd ecx, xmm0
je 0x53d9dd
mov esi, dword [esp + 4]
sub eax, edx
shl edx, 4
lea edx, [edx + esi + 0x18]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov esi, dword [edx]
cmp ecx, esi
cmovae ecx, esi
add edx, 0x10
dec eax
jne 0x53d9d0
mov esi, dword [esp + 4]
cmp ecx, 3
jae 0x53da52
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
add esi, 4
jmp 0x53da06
add esi, 0x10
dec ebp
je 0x53da1a
cmp dword [esi - 4], 0
je 0x53da00
push dword [esi]
push 0
push dword [0x94bf18]
call edi
jmp 0x53da00
cmp dword [esp], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 8]
je 0x53da3a
push dword [esp + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esi], edi
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ebp, 0x40
jbe 0x53da64
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.004fd400
jmp 0x53da3a
cmp edi, 0x80000000
je 0x53da4a
mov ebp, dword [esp + 0xc]
test ebp, ebp
je 0x53dab8
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
lea esi, [eax + 4]
jmp 0x53da96
add esi, 0x10
dec ebp
je 0x53dab8
cmp dword [esi - 4], 0
je 0x53da90
push dword [esi]
push 0
push dword [0x94bf18]
call edi
jmp 0x53da90
mov ecx, edx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.005010c0
cmp dword [esp + 8], 0
je 0x53da4a
push dword [esp + 0x10]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x53da4a
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x53daf8
add eax, 0x10
add ebp, 0xfffffff0
je 0x53db15
mov ecx, dword [eax - 4]
cmp ecx, 5
jb 0x53daf0
mov byte [eax], 0
mov edx, dword [eax - 8]
mov ecx, dword [ecx + edx - 4]
mov dword [edx], ecx
mov dword [eax - 4], 4
jmp 0x53daf0
cmp byte [esp], 0
je 0x53db22
mov ecx, esi
call 0x53dde0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x53d726
mov ebp, dword [esi + 8]
cmp ebp, 0x41
jb 0x53dc62
cmp byte [esp], 0
je 0x53db66
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x53db55
add eax, 0x10
add ebp, 0xfffffff0
je 0x53dba4
cmp dword [eax], 4
jb 0x53db4d
mov byte [eax + 4], 0
mov dword [eax], 3
jmp 0x53db4d
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x53db79
add eax, 0x10
add ebp, 0xfffffff0
je 0x53dba4
mov ecx, dword [eax - 4]
cmp ecx, 4
jb 0x53db71
mov byte [eax], 0
mov edx, dword [eax - 8]
movzx esi, word [ecx + edx - 3]
movzx ecx, byte [ecx + edx - 1]
mov word [edx], si
mov esi, dword [esp + 0x14]
mov byte [edx + 2], cl
mov dword [eax - 4], 3
jmp 0x53db71
cmp byte [esp], 0
je 0x53dbb1
mov ecx, esi
call 0x53dde0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x53d726
mov ebp, dword [esi + 8]
cmp ebp, 0x41
jb 0x53dc62
cmp byte [esp], 0
je 0x53dbf5
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x53dbe4
add eax, 0x10
add ebp, 0xfffffff0
je 0x53dc27
cmp dword [eax], 3
jb 0x53dbdc
mov byte [eax + 4], 0
mov dword [eax], 2
jmp 0x53dbdc
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x53dc08
add eax, 0x10
add ebp, 0xfffffff0
je 0x53dc27
mov ecx, dword [eax - 4]
cmp ecx, 3
jb 0x53dc00
mov byte [eax], 0
mov edx, dword [eax - 8]
movzx ecx, word [ecx + edx - 2]
mov word [edx], cx
mov dword [eax - 4], 2
jmp 0x53dc00
cmp byte [esp], 0
je 0x53dc34
mov ecx, esi
call 0x53dde0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x53d726
mov ebp, dword [esi + 8]
cmp ebp, 0xb
jb 0x53dc62
cmp byte [esp], 0
je 0x53dd33
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x53dd22
mov eax, dword [esi + 4]
mov dword [esp + 4], eax
test ebp, ebp
je 0x53dca6
mov dword [esp + 8], edi
mov eax, ebp
xor ecx, ecx
mov edi, dword [esp + 4]
shl eax, 4
jmp 0x53dc97
mov edx, dword [edi + ecx + 4]
movzx edx, byte [edx]
cmp byte [edx + str.743210_._g], 0xf9
ja 0x53dcad
add ecx, 0x10
cmp eax, ecx
je 0x53dd11
mov edx, dword [edi + ecx + 8]
cmp edx, 1
je 0x53dc80
test edx, edx
jne 0x53dc90
jmp 0x53dcaf
xor ebp, ebp
jmp 0x53d735
xor edx, edx
mov dword [esp], ebx
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov esi, ebp
mov eax, dword [esp + 4]
sub esi, edx
shl edx, 4
lea ebx, [edx + eax + 4]
jmp 0x53dcd6
add ebx, 0x10
dec esi
je 0x53dcea
cmp dword [ebx - 4], 0
je 0x53dcd0
push dword [ebx]
push 0
push dword [0x94bf18]
call edi
jmp 0x53dcd0
cmp dword [esp], 0
je 0x53dd02
push dword [esp + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 0x14]
mov ebx, 0x80000000
mov dword [esi], 0x80000000
mov edi, dword [esp + 8]
jmp 0x53d735
add eax, 0x10
add ebp, 0xfffffff0
je 0x53dd64
cmp dword [eax], 2
jb 0x53dd1a
mov byte [eax + 4], 0
mov dword [eax], 1
jmp 0x53dd1a
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x53dd46
add eax, 0x10
add ebp, 0xfffffff0
je 0x53dd64
mov ecx, dword [eax - 4]
cmp ecx, 2
jb 0x53dd3e
mov byte [eax], 0
mov edx, dword [eax - 8]
movzx ecx, byte [ecx + edx - 1]
mov byte [edx], cl
mov dword [eax - 4], 1
jmp 0x53dd3e
cmp byte [esp], 0
je 0x53dd71
mov ecx, esi
call 0x53dde0
mov ebx, dword [esi]
mov eax, dword [esi + 4]
mov ebp, dword [esi + 8]
cmp ebx, 0x80000000
mov dword [esp + 4], eax
jne 0x53dc69
mov ebx, 0x80000000
jmp 0x53d735
mov ecx, eax
push 0x853d50
call fcn.007c1b80
mov edx, ebp
push 0x853d30
call fcn.007c1c40
mov dword [esp + 0x2c], 0
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x34]
mov dword [esp + 0x34], 0
call fcn.007cafa0
mov ecx, eax
push 0x853d40
call fcn.007c1b80
mov edx, ebp
push 0x853d20
call fcn.007c1c40
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov ebx, dword [ecx + 8]
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 4
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 4
mov byte [esp + 3], 1
mov dword [esp + 0x30], 1
mov dword [esp + 0x14], 0
mov dword [esp + 4], ecx
mov dword [esp + 0x34], eax
lea eax, [esp + 3]
mov dword [esp + 0x38], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x3c], eax
test ebx, ebx
mov dword [esp + 8], ebx
je 0x53dea5
mov esi, dword [ecx + 4]
neg ebx
mov ebp, 1
lea edi, [esp + 0x34]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edx, dword [esi + 4]
mov ecx, edi
push dword [esi + 8]
call fcn.0053e110
add esp, 4
test al, al
je 0x53deab
lea eax, [ebx + ebp + 1]
inc ebp
add esi, 0x10
cmp eax, 1
jne 0x53de80
xor edi, edi
jmp 0x53ded2
xor ebp, ebp
xor edi, edi
jmp 0x53dec6
cmp dword [esi], 0
mov edi, 1
je 0x53dec6
push dword [esi + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 8]
sub esi, ebp
jne 0x53dfa1
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
sub edx, edi
test esi, esi
mov dword [ecx + 8], edx
je 0x53df1a
mov edi, dword [ecx + 4]
shl esi, 2
mov ebx, eax
nop word [eax + eax]
mov ecx, dword [ebx]
cmp ecx, edx
jae 0x53e017
shl ecx, 4
add ebx, 4
add esi, 0xfffffffc
mov byte [edi + ecx + 0xc], 0
jne 0x53df00
test ebp, ebp
je 0x53df2d
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
test edi, edi
je 0x53df6a
mov ebp, dword [sym.imp.kernel32.dll_HeapFree]
lea ebx, [esi + 4]
jmp 0x53df56
add ebx, 0xc
dec edi
je 0x53df6a
cmp dword [ebx - 4], 0
je 0x53df50
push dword [ebx]
push 0
push dword [0x94bf18]
call ebp
jmp 0x53df50
cmp dword [esp + 0x18], 0
je 0x53df80
push esi
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x24], 0
je 0x53df99
push dword [esp + 0x28]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 4]
shl ebp, 4
lea ebx, [esp + 0x34]
add ebp, dword [eax + 4]
jmp 0x53dfe9
movsd xmm0, qword [ebp]
movsd xmm1, qword [ebp + 8]
mov eax, edi
mov ecx, ebp
shl eax, 4
sub ecx, eax
neg eax
movsd qword [ebp + eax + 8], xmm1
movsd qword [ecx], xmm0
add ebp, 0x10
dec esi
je 0x53ded2
mov edx, dword [ebp + 4]
mov ecx, ebx
push dword [ebp + 8]
call fcn.0053e110
add esp, 4
test al, al
jne 0x53dfc0
inc edi
cmp dword [ebp], 0
je 0x53dfdf
push dword [ebp + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x53dfdf
push 0x853d70
call fcn.007c1be0
int3