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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [ebp + 0x10]
push ebx
lea edx, [eax + 0x253]
push esi
mov ecx, eax
push edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], edx
cmp eax, edx
ja case.0x10009288.32744
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
cmp ecx, 0x7fb0
ja 0x10009272
je 0x10009265
cmp ecx, 0x30b8
ja 0x10009112
je 0x100090c6
lea eax, [ecx - 0x309c]
cmp eax, 0x15
ja case.0x10009288.32696
movzx eax, byte [eax + 0x10009560]
jmp dword [eax*4 + 0x1000954c]
mov ecx, 0x74
lea edx, [ecx - 0x73]
lea esp, [esp]
mov eax, ecx
sub eax, 0x74
je 0x10008f84
sub eax, 0x50
jne 0x10008f88
cmp byte [esp + 0x2c], al
je 0x10008f6b
mov eax, 0xf79
cmp eax, eax
je 0x10009509
add eax, 0x25
cmp eax, 0xf79
jbe 0x10008f59
jmp 0x10008f88
mov eax, 0x4f9c
cmp eax, eax
je 0x10009520
add eax, 0x24
cmp eax, 0x4f9c
jbe 0x10008f72
jmp 0x10008f88
mov dword [esp + 0x2c], edx
add ecx, 0x50
cmp ecx, 0xc4
jbe 0x10008f40
jmp case.0x10009288.32696
cmp dword [ebx], 0
je case.0x10009288.32696
movzx ecx, byte [esi]
mov eax, dword [edi]
xor ecx, eax
and ecx, 0xff
shr eax, 8
xor eax, dword [ecx*4 + 0x1003f800]
inc esi
mov dword [edi], eax
dec dword [ebx]
jne 0x10008fa1
mov dword [ebp + 0x18], esi
jmp case.0x10009288.32696
mov edx, dword [edi]
not edx
mov dword [edi], edx
cmp dword [ebx], 8
jb case.0x10009288.32696
jmp 0x10008fe0
mov ecx, 0x26ef
cmp ecx, 0x27fd
ja 0x1000901c
je 0x10009002
mov eax, ecx
sub eax, 0x26ef
je 0x10009002
sub eax, 0x5a
je 0x10009002
sub eax, 0x5a
jne 0x10009068
movzx edx, byte [esi]
mov eax, dword [edi]
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x1003f800]
inc esi
jmp 0x10009066
mov eax, ecx
sub eax, 0x2857
je 0x10009034
sub eax, 0x5a
je 0x10009034
sub eax, 0x5a
jne 0x10009068
add dword [ebx], 0xfffffff8
jmp 0x10009068
movzx edx, byte [esi]
mov eax, dword [edi]
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x1003f800]
mov dword [edi], eax
movzx edx, byte [esi + 1]
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x1003f800]
add esi, 2
mov dword [edi], eax
add ecx, 0x5a
cmp ecx, 0x290b
jbe 0x10008fe5
cmp dword [ebx], 8
jae 0x10008fe0
mov dword [ebp + 0x18], esi
jmp case.0x10009288.32696
test esi, esi
jne case.0x10009288.32696
mov ecx, 0x1a5a
mov eax, ecx
sub eax, 0x1a5a
je 0x100090ae
sub eax, 6
jne 0x100090b6
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
add ecx, 6
cmp ecx, 0x1a60
jbe 0x10009095
jmp case.0x10009288.32696
mov eax, 0x4951
cmp eax, eax
je 0x10009537
add eax, 0x29
cmp eax, 0x4951
jbe 0x100090cd
mov eax, edi
call fcn.10008d90
mov edi, eax
test edi, edi
je 0x10009258
mov ecx, dword [edi]
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10009134
test dl, dl
je 0x1000910e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10009134
add eax, 2
add ecx, 2
test dl, dl
jne 0x100090f2
xor eax, eax
jmp 0x10009139
mov eax, ecx
sub eax, 0x6d53
je 0x100090dd
sub eax, 7
je case.0x10009288.32744
sub eax, 0x124f
jne case.0x10009288.32696
mov dword [esp + 0x14], eax
jmp case.0x10009288.32696
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10009244
mov ebx, 0x6366
mov dword [esp + 0x24], ebx
mov eax, ebx
sub eax, 0x6366
je 0x1000921e
sub eax, 0x1e
jne 0x10009231
cmp dword [esp + 0x20], eax
jne 0x10009194
mov ecx, 0x99
jmp 0x10009170
mov eax, ecx
sub eax, 0x99
je 0x10009182
dec eax
je case.0x10009288.32744
jmp 0x10009186
mov dword [esp + 0x10], edi
inc ecx
cmp ecx, 0x9a
jbe 0x10009170
jmp 0x10009231
cmp byte [edi + 4], 0
je 0x10009231
mov dword [esp + 0x1c], 0x20d9
cmp dword [esp + 0x1c], 0x20d9
jne 0x10009203
mov ebx, edi
call fcn.100275f0
mov ebx, eax
test ebx, ebx
je 0x10009203
xor esi, esi
nop
cmp esi, 0x93
ja case.0x100091cf.1
movzx eax, byte [esi + 0x1000958c]
jmp dword [eax*4 + 0x10009578]
mov eax, edi
call fcn.10027600
jmp case.0x100091cf.1
mov eax, dword [esp + 0x20]
mov ecx, ebx
call fcn.1001b860
mov ebx, eax
jmp case.0x100091cf.1
mov dword [esp + 0x10], ebx
add esi, 0x31
lea ecx, [esi + 0xdd4]
cmp ecx, 0xe67
jbe 0x100091c0
mov eax, dword [esp + 0x1c]
add eax, 0x28
mov dword [esp + 0x1c], eax
cmp eax, 0x20d9
jbe 0x100091a6
mov esi, dword [ebp + 0x18]
mov ebx, dword [esp + 0x24]
jmp 0x10009231
push 0x10041b04
push 0
call fcn.1002bf06
add esp, 8
mov dword [esp + 0x20], eax
add ebx, 0x1e
mov dword [esp + 0x24], ebx
cmp ebx, 0x6384
jbe 0x1000914a
mov eax, edi
call fcn.10008d90
mov edi, eax
test edi, edi
jne 0x100090ee
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x10], 0
jmp case.0x10009288.32696
mov dword [esp + 0x18], 0
jmp case.0x10009288.32696
lea eax, [ecx - 0x7fb7]
cmp eax, 0x31
ja case.0x10009288.32696
movzx eax, byte [eax + 0x10009640]
jmp dword [eax*4 + 0x10009620]
cmp dword [esp + 0x18], 0
jne case.0x10009288.32696
mov ebx, 0x5a3d
mov eax, ebx
sub eax, 0x5a3d
je 0x100092b9
sub eax, 0x35
jne 0x100092d0
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0xdc]
shl ecx, 0xb
push ecx
push str.Couldnt_calloc_1___d_
call fcn.10021e90
add esp, 8
add ebx, 0x35
cmp ebx, 0x5a72
jbe 0x1000929f
mov ebx, dword [ebp + 0x14]
jmp case.0x10009288.32696
mov ecx, dword [esi + 0xdc]
shl ecx, 0xb
cmp dword [esp + 0x30], ecx
je 0x10009309
mov eax, 0x6329
cmp eax, eax
je 0x10009542
add eax, 0x13
cmp eax, 0x6329
jbe 0x100092f9
cmp dword [esp + 0x14], ecx
jae case.0x10009288.32696
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
call fcn.10013ca0
test al, al
jne 0x10009331
inc dword [esp + 0x14]
jmp 0x10009410
movzx ecx, byte [edi + 0xc]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
call fcn.10029c20
mov ebx, eax
mov eax, dword [ebx]
add esp, 0xc
mov dword [esp + 0x1c], eax
cmp eax, 1
je 0x1000936e
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp + 0x14]
add ecx, 4
mov eax, ebx
mov edx, edi
call fcn.10021f20
add esp, 4
mov dword [esp + 0x1c], eax
push ebx
call fcn.1002b00c
add esp, 4
cmp dword [esp + 0x1c], 0
je 0x100093be
mov ebx, 0x1607
mov eax, ebx
sub eax, 0x1607
je 0x100093a6
sub eax, 0x22
je 0x1000939c
sub eax, 0x22
je case.0x10009288.32744
jmp 0x100093b3
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
jmp 0x100093b3
mov eax, dword [esp + 0x18]
push eax
call fcn.1002b00c
add esp, 4
add ebx, 0x22
cmp ebx, 0x164b
jbe 0x10009383
mov eax, dword [esp + 0x24]
call fcn.10013ca0
movzx ecx, al
mov eax, dword [ebp + 8]
add dword [esp + 0x14], ecx
add dword [eax], 0xffffffff
mov edx, dword [eax]
adc dword [eax + 4], 0xffffffff
or edx, dword [eax + 4]
jne 0x10009410
mov ebx, 0x1f29
mov eax, ebx
sub eax, 0x1f29
je 0x100093f8
sub eax, 0x43
je 0x100092ad
jmp 0x10009405
mov eax, dword [esp + 0x18]
push eax
call fcn.1002b00c
add esp, 4
add ebx, 0x43
cmp ebx, 0x1f6c
jbe 0x100093e4
mov ecx, dword [esi + 0xdc]
shl ecx, 0xb
cmp dword [esp + 0x14], ecx
jb 0x10009313
mov ebx, dword [ebp + 0x14]
jmp case.0x10009288.32696
mov edx, dword [esp + 0x18]
push edx
call fcn.1002b00c
add esp, 4
mov dword [esp + 0x10], 0
jmp case.0x10009288.32696
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x10009478
mov ecx, 0x5523
mov eax, ecx
sub eax, 0x5523
je 0x10009465
sub eax, 0x5b
je case.0x10009288.32744
jmp 0x1000946d
mov dword [esp + 0x10], 2
add ecx, 0x5b
cmp ecx, 0x557e
jbe 0x10009451
mov ecx, dword [esi + 0xdc]
shl ecx, 0xb
push ecx
push 1
call fcn.1002b046
add esp, 8
mov dword [esp + 0x18], eax
jmp case.0x10009288.32696
cmp dword [ebx], 0
jne case.0x10009288.32696
mov ecx, 0x848
lea esp, [esp]
mov eax, ecx
sub eax, 0x848
je 0x100094b4
sub eax, 0x4c
je case.0x10009288.32744
jmp 0x100094bc
mov dword [esp + 0x10], 0
add ecx, 0x4c
cmp ecx, 0x894
jbe 0x100094a0
jmp case.0x10009288.32696
mov edx, dword [esi + 0xdc]
mov eax, dword [esi + 0xd4]
mov ecx, dword [esp + 0x18]
push edx
push eax
push ecx
push edi
call fcn.10019cf0
add esp, 0x10
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x28]
add ecx, 7
mov dword [esp + 0x28], ecx
cmp ecx, dword [esp + 0x34]
jbe 0x10008ef0
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx]
mov eax, dword [edi]
push edx
push eax
mov ecx, esi
call fcn.10008150
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx]
mov edx, dword [edi]
push ecx
push edx
mov edx, esi
call fcn.10014b40
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
not eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret