Function at 0x4abe60
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 0x4ac74a
mov ebp, dword [ecx + 8]
mov esi, ecx
mov dword [esp + 0x14], ecx
test ebp, ebp
je 0x4abfa7
mov edi, dword [esi + 4]
cmp ebp, 1
mov edx, dword [edi + 8]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
jne 0x4abfd0
test edx, edx
je 0x4ac13d
cmp byte [esp], 0
jne 0x4abfb3
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 0x4abf00
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 0x4ac2ef
test al, 1
je 0x4abf10
cmp ebx, dword [esp + 0x20]
jne 0x4abf26
jmp 0x4ac254
mov eax, dword [esp + 0x20]
sub eax, ebx
shr eax, 4
cmp eax, esi
jbe 0x4ac254
shl esi, 4
add ebx, esi
mov eax, edx
sub eax, ecx
jb 0x4aca93
mov esi, dword [ebx + 8]
test esi, esi
je 0x4ac270
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 0x4abee0
movzx edx, byte [edi + ebp]
mov esi, dword [esp + 4]
cmp dl, byte [esi + ebp]
jne 0x4abfa0
inc ebx
mov edx, eax
dec ebp
add edx, ebx
jne 0x4abf70
mov ecx, dword [esp + 0x24]
jmp 0x4abee4
mov ecx, ebx
jmp 0x4abee4
xor eax, eax
cmp byte [esp], 0
je 0x4ac3cb
mov ecx, esi
call 0x4acae0
cmp dword [esi], 0x80000000
jne 0x4ac18f
mov edi, 0x80000001
jmp 0x4ac426
lea esi, [ebp + 0xfffffff]
xor ecx, ecx
mov eax, esi
and eax, 0xfffffff
cmp eax, 8
jb 0x4ac115
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 [0x4de440]
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 0x4ac010
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 0x4ac12d
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 0x4ac120
test edx, edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jne 0x4abea8
lea esi, [edi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4ac156
add esi, 0x10
dec ebp
je 0x4ac16a
cmp dword [esi - 4], 0
je 0x4ac150
push dword [esi]
push 0
push dword [0x5371d8]
call edi
jmp 0x4ac150
test ebx, ebx
je 0x4ac180
push dword [esp + 0x10]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x14]
mov dword [eax], 0x80000000
jmp 0x4ac74a
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ebp
test ecx, ecx
je 0x4ac24d
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 0x4ac1de
mov ecx, ebx
xor esi, esi
mov al, 1
test ebx, ebx
je 0x4ac2e7
test al, 1
je 0x4ac1f0
cmp edi, dword [esp + 4]
jne 0x4ac202
jmp 0x4ac27c
mov eax, dword [esp + 4]
sub eax, edi
shr eax, 4
cmp eax, esi
jbe 0x4ac27c
shl esi, 4
add edi, esi
cmp ecx, ebp
ja 0x4aca9f
mov eax, dword [edi + 8]
mov esi, dword [esp + 8]
cmp eax, ecx
cmovb ecx, eax
test ecx, ecx
je 0x4ac2e5
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 0x4ac1d0
inc ebx
cmp ecx, ebx
jne 0x4ac230
mov ebx, ecx
xor esi, esi
mov al, 1
test ebx, ebx
jne 0x4ac1de
jmp 0x4ac2e7
xor eax, eax
jmp 0x4ac3cb
mov eax, edx
sub eax, ecx
jb 0x4acac8
mov esi, dword [esp + 8]
mov dword [esp + 0xc], ebp
mov edx, dword [esp + 0x14]
add esi, eax
mov eax, ebp
jmp 0x4ac294
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
xor esi, esi
jmp 0x4ac2ef
cmp ecx, ebp
ja 0x4acad4
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 8]
cmp eax, 2
jb 0x4ac2dd
lea eax, [ecx - 1]
cmp eax, 2
ja 0x4ac2dd
cmp byte [esp], 0
je 0x4ac2dd
movzx eax, byte [esi]
cmp byte [eax + str.743210_._g], 0xc7
ja 0x4ac2dd
mov eax, dword [esp + 0xc]
add edi, 8
shl eax, 4
jmp 0x4ac2cc
add edi, 0x10
add eax, 0xfffffff0
je 0x4ac7aa
cmp dword [edi], 2
jb 0x4ac2c0
mov byte [edi + 4], 0
mov dword [edi], 1
jmp 0x4ac2c0
mov ebp, dword [esp + 0xc]
mov esi, ecx
jmp 0x4ac2ef
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 0x4ac31f
add eax, 0xfffffff0
cmp byte [ecx + 0xc], 0
lea ecx, [ecx + 0x10]
jne 0x4ac300
xor eax, eax
cmp esi, 2
setb cl
cmp esi, 4
jbe 0x4ac330
jmp 0x4ac33f
cmp ebp, 0x11
setb al
cmp esi, 2
setb cl
cmp esi, 4
ja 0x4ac33f
or cl, al
je 0x4ac33f
mov esi, dword [esp + 0x14]
mov eax, ebp
jmp 0x4ac3cb
cmp byte [esp], 0
je 0x4ac364
add edi, 8
shl ebp, 4
jmp 0x4ac358
add edi, 0x10
add ebp, 0xfffffff0
je 0x4ac397
cmp dword [edi], esi
jbe 0x4ac350
mov byte [edi + 4], 0
mov dword [edi], esi
jmp 0x4ac350
add edi, 0xc
shl ebp, 4
jmp 0x4ac378
add edi, 0x10
add ebp, 0xfffffff0
je 0x4ac397
mov eax, dword [edi - 4]
sub eax, esi
jbe 0x4ac370
mov byte [edi], 0
mov ecx, dword [edi - 8]
add eax, ecx
push esi
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [edi - 4], esi
jmp 0x4ac370
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.0046db20
cmp dword [esi], 0x80000000
je 0x4acaab
mov eax, dword [esi + 8]
cmp eax, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], 1
jne 0x4acab3
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 0x4ac3f7
add ecx, 0xfffffff0
cmp byte [esi + 0xc], 0
lea esi, [esi + 0x10]
jne 0x4ac3e0
mov edi, 0x80000001
jmp 0x4ac414
lea ecx, [esp + 0x34]
push eax
call fcn.004aaf30
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 0x4ac47e
mov eax, dword [esi + 4]
mov ebp, dword [esi + 8]
mov ebx, 0x80000000
mov dword [esp + 4], eax
cmp edi, 0x80000001
je 0x4ac74a
cmp ebx, 0x80000000
je 0x4ac73a
test ebp, ebp
mov dword [esp], ebx
mov dword [esp + 8], edi
je 0x4ac71a
mov esi, dword [esp + 4]
cmp ebp, 1
mov ecx, dword [esi + 8]
jne 0x4ac55d
mov edi, dword [esp + 8]
cmp ecx, 2
jbe 0x4ac6e6
jmp 0x4ac764
mov ebp, dword [esi + 8]
cmp ebp, 0xa
jbe 0x4ac962
cmp byte [esp], 0
je 0x4ac4b9
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x4ac4a8
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac501
cmp dword [eax], 6
jb 0x4ac4a0
mov byte [eax + 4], 0
mov dword [eax], 5
jmp 0x4ac4a0
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x4ac4d8
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac501
mov ecx, dword [eax - 4]
cmp ecx, 6
jb 0x4ac4d0
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 0x4ac4d0
cmp byte [esp], 0
je 0x4ac50e
mov ecx, esi
call 0x4acae0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x4ac426
mov ebp, dword [esi + 8]
cmp ebp, 0xb
jb 0x4ac962
cmp byte [esp], 0
je 0x4ac7d6
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x4ac54c
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac815
cmp dword [eax], 5
jb 0x4ac540
mov byte [eax + 4], 0
mov dword [eax], 4
jmp 0x4ac540
lea ebx, [ebp + 0xfffffff]
mov edi, dword [esp + 8]
xor edx, edx
mov eax, ebx
and eax, 0xfffffff
cmp eax, 8
jb 0x4ac6b4
movd xmm0, ecx
and ebx, 7
mov edx, eax
add esi, 0x88
pshufd xmm1, xmm0, 0
movdqa xmm0, xmmword [0x4de440]
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 0x4ac5b0
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 0x4ac6dd
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 0x4ac6d0
mov esi, dword [esp + 4]
cmp ecx, 3
jae 0x4ac752
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
add esi, 4
jmp 0x4ac706
add esi, 0x10
dec ebp
je 0x4ac71a
cmp dword [esi - 4], 0
je 0x4ac700
push dword [esi]
push 0
push dword [0x5371d8]
call edi
jmp 0x4ac700
cmp dword [esp], 0
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 8]
je 0x4ac73a
push dword [esp + 4]
push 0
push dword [0x5371d8]
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 0x4ac764
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.00469b60
jmp 0x4ac73a
cmp edi, 0x80000000
je 0x4ac74a
mov ebp, dword [esp + 0xc]
test ebp, ebp
je 0x4ac7b8
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
lea esi, [eax + 4]
jmp 0x4ac796
add esi, 0x10
dec ebp
je 0x4ac7b8
cmp dword [esi - 4], 0
je 0x4ac790
push dword [esi]
push 0
push dword [0x5371d8]
call edi
jmp 0x4ac790
mov ecx, edx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.0046db20
cmp dword [esp + 8], 0
je 0x4ac74a
push dword [esp + 0x10]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4ac74a
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x4ac7f8
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac815
mov ecx, dword [eax - 4]
cmp ecx, 5
jb 0x4ac7f0
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 0x4ac7f0
cmp byte [esp], 0
je 0x4ac822
mov ecx, esi
call 0x4acae0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x4ac426
mov ebp, dword [esi + 8]
cmp ebp, 0x41
jb 0x4ac962
cmp byte [esp], 0
je 0x4ac866
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x4ac855
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac8a4
cmp dword [eax], 4
jb 0x4ac84d
mov byte [eax + 4], 0
mov dword [eax], 3
jmp 0x4ac84d
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x4ac879
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac8a4
mov ecx, dword [eax - 4]
cmp ecx, 4
jb 0x4ac871
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 0x4ac871
cmp byte [esp], 0
je 0x4ac8b1
mov ecx, esi
call 0x4acae0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x4ac426
mov ebp, dword [esi + 8]
cmp ebp, 0x41
jb 0x4ac962
cmp byte [esp], 0
je 0x4ac8f5
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x4ac8e4
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac927
cmp dword [eax], 3
jb 0x4ac8dc
mov byte [eax + 4], 0
mov dword [eax], 2
jmp 0x4ac8dc
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x4ac908
add eax, 0x10
add ebp, 0xfffffff0
je 0x4ac927
mov ecx, dword [eax - 4]
cmp ecx, 3
jb 0x4ac900
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 0x4ac900
cmp byte [esp], 0
je 0x4ac934
mov ecx, esi
call 0x4acae0
mov ebx, dword [esi]
cmp ebx, 0x80000000
je 0x4ac426
mov ebp, dword [esi + 8]
cmp ebp, 0xb
jb 0x4ac962
cmp byte [esp], 0
je 0x4aca33
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 8
jmp 0x4aca22
mov eax, dword [esi + 4]
mov dword [esp + 4], eax
test ebp, ebp
je 0x4ac9a6
mov dword [esp + 8], edi
mov eax, ebp
xor ecx, ecx
mov edi, dword [esp + 4]
shl eax, 4
jmp 0x4ac997
mov edx, dword [edi + ecx + 4]
movzx edx, byte [edx]
cmp byte [edx + str.743210_._g], 0xf9
ja 0x4ac9ad
add ecx, 0x10
cmp eax, ecx
je 0x4aca11
mov edx, dword [edi + ecx + 8]
cmp edx, 1
je 0x4ac980
test edx, edx
jne 0x4ac990
jmp 0x4ac9af
xor ebp, ebp
jmp 0x4ac435
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 0x4ac9d6
add ebx, 0x10
dec esi
je 0x4ac9ea
cmp dword [ebx - 4], 0
je 0x4ac9d0
push dword [ebx]
push 0
push dword [0x5371d8]
call edi
jmp 0x4ac9d0
cmp dword [esp], 0
je 0x4aca02
push dword [esp + 4]
push 0
push dword [0x5371d8]
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 0x4ac435
add eax, 0x10
add ebp, 0xfffffff0
je 0x4aca64
cmp dword [eax], 2
jb 0x4aca1a
mov byte [eax + 4], 0
mov dword [eax], 1
jmp 0x4aca1a
mov eax, dword [esi + 4]
shl ebp, 4
add eax, 0xc
jmp 0x4aca46
add eax, 0x10
add ebp, 0xfffffff0
je 0x4aca64
mov ecx, dword [eax - 4]
cmp ecx, 2
jb 0x4aca3e
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 0x4aca3e
cmp byte [esp], 0
je 0x4aca71
mov ecx, esi
call 0x4acae0
mov ebx, dword [esi]
mov eax, dword [esi + 4]
mov ebp, dword [esi + 8]
cmp ebx, 0x80000000
mov dword [esp + 4], eax
jne 0x4ac969
mov ebx, 0x80000000
jmp 0x4ac435
mov ecx, eax
push 0x4e9978
call fcn.004d6370
mov edx, ebp
push 0x4e9958
call fcn.004d6430
mov dword [esp + 0x2c], 0
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x34]
mov dword [esp + 0x34], 0
call fcn.004dc6a0
mov ecx, eax
push 0x4e9968
call fcn.004d6370
mov edx, ebp
push 0x4e9948
call fcn.004d6430
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 0x4acba5
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.004ace10
add esp, 4
test al, al
je 0x4acbab
lea eax, [ebx + ebp + 1]
inc ebp
add esi, 0x10
cmp eax, 1
jne 0x4acb80
xor edi, edi
jmp 0x4acbd2
xor ebp, ebp
xor edi, edi
jmp 0x4acbc6
cmp dword [esi], 0
mov edi, 1
je 0x4acbc6
push dword [esi + 4]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [esp + 8]
sub esi, ebp
jne 0x4acca1
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 0x4acc1a
mov edi, dword [ecx + 4]
shl esi, 2
mov ebx, eax
nop word [eax + eax]
mov ecx, dword [ebx]
cmp ecx, edx
jae 0x4acd17
shl ecx, 4
add ebx, 4
add esi, 0xfffffffc
mov byte [edi + ecx + 0xc], 0
jne 0x4acc00
test ebp, ebp
je 0x4acc2d
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
test edi, edi
je 0x4acc6a
mov ebp, dword [sym.imp.KERNEL32.dll_HeapFree]
lea ebx, [esi + 4]
jmp 0x4acc56
add ebx, 0xc
dec edi
je 0x4acc6a
cmp dword [ebx - 4], 0
je 0x4acc50
push dword [ebx]
push 0
push dword [0x5371d8]
call ebp
jmp 0x4acc50
cmp dword [esp + 0x18], 0
je 0x4acc80
push esi
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x24], 0
je 0x4acc99
push dword [esp + 0x28]
push 0
push dword [0x5371d8]
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 0x4acce9
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 0x4acbd2
mov edx, dword [ebp + 4]
mov ecx, ebx
push dword [ebp + 8]
call fcn.004ace10
add esp, 4
test al, al
jne 0x4accc0
inc edi
cmp dword [ebp], 0
je 0x4accdf
push dword [ebp + 4]
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4accdf
push 0x4e9998
call fcn.004d63d0
int3