Function at 0x101485d0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
sub esp, 0x34
push ebx
mov ebx, dword [esp + 0x3c]
push ebp
push esi
mov esi, dword [esp + 0x48]
cmp dword [ebx + 0x10], 0x101485d0
push edi
je 0x101485f1
mov edx, esi
mov ecx, ebx
call fcn.10147330
cmp dword [esp + 0x50], 0
mov dword [ebx + 0x10], fcn.101485d0
je 0x10148995
mov edi, dword [ebx]
test edi, edi
jne 0x10148754
test esi, esi
je 0x10148628
mov eax, dword [esi]
test eax, eax
je 0x10148628
push 0x588
push 1
push dword [esi + 8]
call eax
add esp, 0xc
jmp 0x10148636
push 0x588
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov edi, eax
test edi, edi
je 0x1014883e
mov dword [ebx], edi
mov dword [ebx + 0x14], 0x10148bb0
mov dword [ebx + 0x18], 0x10148a80
mov dword [ebx + 0x28], 0x101489b0
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x20], 0xffffffff
movups xmm0, xmmword [esp + 0x14]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
movups xmmword [edi + 8], xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
movups xmm0, xmmword [esp + 0x24]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
movups xmmword [edi + 0x18], xmm0
mov dword [esp + 0x3c], 0
movups xmm0, xmmword [esp + 0x34]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0xffffffff
movups xmmword [edi + 0x28], xmm0
mov dword [esp + 0x20], 0xffffffff
movups xmm0, xmmword [esp + 0x14]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
movups xmmword [edi + 0x148], xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
movups xmm0, xmmword [esp + 0x24]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
movups xmmword [edi + 0x158], xmm0
mov dword [esp + 0x3c], 0
movups xmm0, xmmword [esp + 0x34]
mov dword [edi + 0xf8], 0xffffffff
mov dword [edi + 0xfc], 0xffffffff
movups xmmword [edi + 0x168], xmm0
mov dword [edi + 0x178], 0
mov eax, dword [esp + 0x54]
mov ebp, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x178]
mov dword [edi], 0
mov dword [edi + 0x38], 0
mov dword [esp + 0x48], eax
test eax, eax
je 0x10148802
mov ebx, dword [eax]
test ebx, ebx
je 0x101487e0
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x1014879c
push 0x1014b6c0
mov edx, esi
call fcn.1014b920
add esp, 4
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x101487b2
push 0x1014b6c0
mov edx, esi
call fcn.1014b920
add esp, 4
push 0x10147570
lea ecx, [ebx + 0x30]
mov edx, esi
call fcn.1014b8e0
add esp, 4
test esi, esi
je 0x101487da
mov eax, dword [esi + 4]
test eax, eax
je 0x101487da
push ebx
push dword [esi + 8]
call eax
add esp, 8
jmp 0x101487e4
push ebx
call ebp
add esp, 4
test esi, esi
je 0x101487f9
mov eax, dword [esi + 4]
test eax, eax
je 0x101487f9
push dword [esp + 0x48]
push dword [esi + 8]
call eax
add esp, 8
jmp 0x10148802
push dword [esp + 0x48]
call ebp
add esp, 4
mov ecx, esi
call fcn.1014b630
mov ebx, eax
test ebx, ebx
je 0x10148834
sub esp, 0x18
mov edx, esi
call fcn.1014b750
add esp, 0x18
test eax, eax
jne 0x10148853
test esi, esi
je 0x1014884b
mov eax, dword [esi + 4]
test eax, eax
je 0x1014884b
push ebx
push dword [esi + 8]
call eax
add esp, 8
mov dword [edi + 0x178], 0
mov eax, 5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
push ebx
call ebp
add esp, 4
jmp 0x10148834
mov edx, eax
mov ecx, ebx
call fcn.1014b860
mov dword [edi + 0x178], ebx
lea ebx, [edi + 0x18a]
mov eax, dword [0x1018c848]
mov dword [edi + 0x184], eax
mov ax, word [0x1018c84c]
mov word [edi + 0x188], ax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
ja 0x10148995
mov byte [ebx], 0
mov ebp, 2
mov byte [ebx + 1], al
or edx, 0xffffffff
nop dword [eax + eax]
movzx eax, byte [ebx]
lea ebx, [ebx + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x1018cd20]
sub ebp, 1
jne 0x101488a0
not edx
mov dword [edi + 0x18c], edx
mov eax, dword [edi]
mov dword [edi + 0x17c], ebp
mov dword [edi + 0x180], 0xc
cmp eax, 1
jg 0x10148906
mov eax, dword [esp + 0x50]
mov edx, esi
mov ecx, edi
mov byte [edi + 4], 0
mov dword [edi + 0x58], eax
call fcn.10148f50
mov ecx, eax
lea eax, [edi + 0xf8]
mov dword [edi + 0x58], eax
test ecx, ecx
jne 0x1014898b
mov byte [edi + 4], 1
jmp 0x10148923
cmp eax, 3
jg 0x10148986
mov eax, dword [edi + 0x30]
push 0
push dword [esp + 0x54]
push esi
push dword [edi + 8]
call eax
mov ecx, eax
add esp, 0x10
test ecx, ecx
jne 0x1014898b
mov eax, dword [edi + 0xf8]
lea ebp, [edi + 0xf8]
and eax, dword [ebp + 4]
cmp eax, 0xffffffff
je 0x1014896d
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edi, ebp
nop
mov eax, dword [edi + 8]
test esi, esi
je 0x10148959
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10148959
push eax
push dword [esi + 8]
call ecx
add esp, 8
jmp 0x1014895f
push eax
call ebx
add esp, 4
mov eax, dword [edi + 0x10]
add edi, 0x10
and eax, dword [edi + 4]
cmp eax, 0xffffffff
jne 0x10148940
mov ecx, dword [esp + 0x50]
mov edx, ebp
push esi
call fcn.1014af50
add esp, 4
mov ecx, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, 0xb
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x34
ret