Function at 0xb170a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x530
mov esi, esp
push eax
mov dword [esi + 0xf8], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd0], eax
mov esp, eax
push eax
sub esp, 0xa8
mov dword [esi + 0x8c], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xfc], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x84], eax
mov esp, eax
push eax
mov dword [esi + 0xe0], esp
push eax
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x50], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xf0], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xec], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x80], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x74], eax
mov esp, eax
push eax
sub esp, 0x20
mov dword [esi + 0x100], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x104], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x108], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x90], eax
mov esp, eax
push eax
sub esp, 0xc
mov dword [esi + 0x10c], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb8], eax
mov esp, eax
push eax
sub esp, 0x2c
mov dword [esi + 0x110], esp
sub esp, 0x30
mov dword [esi + 0x114], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc8], eax
mov esp, eax
push eax
mov dword [esi + 0x78], esp
sub esp, 0x2c
mov dword [esi + 0xcc], esp
push eax
mov dword [esi + 0x20], esp
push eax
mov ebx, esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa8], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x88], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xbc], eax
mov esp, eax
push eax
mov dword [esi + 0xac], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc0], eax
mov esp, eax
push eax
push eax
mov dword [esi + 0xe4], esp
sub esp, 0x348
mov dword [esi + 0xb4], esp
sub esp, 0xdc
mov dword [esi + 0x70], esp
sub esp, 0xc
mov dword [esi + 0xf4], esp
push eax
mov dword [esi + 0xd4], esp
sub esp, 0xc
mov dword [esi + 0xa4], esp
push eax
mov dword [esi + 0xd8], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x48], eax
mov esp, eax
push eax
sub esp, 0x14
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push 0x1000
call fcn.00af9490
add esp, 4
mov dword [esi + 0x7c], eax
mov dword [esi + 0x28], 0xbbf4e688
mov dword [esi + 0x2c], 0xa1505d4d
mov word [esi + 0x30], 0xed8e
mov dword [esi + 0x32], 0
mov dword [esi + 0x35], 0
mov dword [esi + 0x120], 0
mov eax, dword [esi + 0x120]
cmp eax, 0x10
ja 0xb1732e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x120]
mov ecx, dword [esi + 0x120]
movzx edx, byte [esi + ecx + 0x28]
mov ecx, 0x82c10742
sub ecx, eax
add eax, 0xbd
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x320], ecx
mov eax, dword [esi + 0x320]
mov ecx, eax
xor ecx, 0xd4
and eax, 0x54
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x120]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 0x120]
mov eax, dword [esi + 0x120]
cmp eax, 0x11
jb 0xb172d0
mov dword [esi + 0x24], ebx
mov dword [esi + 0xdc], edi
mov eax, dword [0xcc1c94]
mov dword [esi + 0x10], eax
mov dword [esi + 0x120], 0xe48af89a
mov dword [esi + 0x124], 0xbebc3b3b
mov dword [esi + 0x128], 0xb24c48bf
mov dword [esi + 0x12c], 0x4d4db84c
mov word [esi + 0x130], 0xfd9a
mov byte [esi + 0x132], 0xda
mov dword [esi + 0x133], 0
mov dword [esi + 0x137], 0
mov dword [esi + 0x13b], 0
mov byte [esi + 0x13f], 0
mov dword [esi + 0x94], 0
mov ecx, dword [esi + 0x94]
cmp ecx, 0x1f
ja 0xb17413
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x94]
movzx edx, byte [esi + edx + 0x120]
lea edi, [ecx - 0x4be6ae46]
add ecx, 0xba
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x320], edi
mov ecx, dword [esi + 0x320]
add cl, 0xea
mov edx, dword [esi + 0x94]
mov byte [esi + edx + 0x120], cl
inc dword [esi + 0x94]
mov ecx, dword [esi + 0x94]
cmp ecx, 0x20
jb 0xb173c0
mov ecx, dword [0xcc1c90]
mov dword [esi + 0x320], 0xa698f9fb
mov dword [esi + 0x324], 0x9090c59d
mov dword [esi + 0x328], 0xbfc2db9f
mov dword [esi + 0x32c], 0x9baecda3
mov dword [esi + 0x330], 0x8a9f9c95
mov dword [esi + 0x334], 0x80898282
mov dword [esi + 0x338], 0xc6f89a82
mov dword [esi + 0x33c], 0x8a83a9dc
mov dword [esi + 0x340], 0xc9b9988d
mov dword [esi + 0x344], 0x6e7b4724
mov dword [esi + 0x348], 0x23386d74
mov dword [esi + 0x34c], 0x2f7a7046
mov dword [esi + 0x350], 0x392a353a
mov dword [esi + 0x354], 0x1d2a2724
mov dword [esi + 0x358], 0x5a463125
mov dword [esi + 0x35c], 0x1f3e2750
mov word [esi + 0x360], 0
mov dword [esi + 0x54], 0
mov edx, dword [esi + 0x54]
cmp edx, 0x41
ja 0xb1753e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x54]
mov edi, dword [esi + 0x54]
movzx edi, byte [esi + edi + 0x320]
mov ebx, 0xb46173a3
sub ebx, edx
lea eax, [edx + 0x5c]
and eax, edi
or ebx, edi
add edi, edx
add edi, 0x4b9e8c5c
add ebx, edx
lea edx, [eax + ebx]
add edx, 0x4b9e8c5d
mov eax, edx
xor eax, edi
not edx
and edx, edi
add edx, edx
sub edx, eax
mov dword [esi + 0x94], edx
mov eax, dword [esi + 0x94]
add al, 0x7c
mov edx, dword [esi + 0x54]
mov byte [esi + edx + 0x320], al
inc dword [esi + 0x54]
mov eax, dword [esi + 0x54]
cmp eax, 0x42
jb 0xb174e0
movzx edx, byte [esi + 0x320]
mov eax, dword [esi + 0x7c]
mov ebx, eax
test dl, dl
je 0xb1756b
lea edi, [esi + 0x321]
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0xb17560
mov eax, ebx
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0xb1758d
inc ecx
mov edi, dword [esi + 0x10]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0xb17580
jmp 0xb17590
mov edi, dword [esi + 0x10]
mov byte [eax], 0
movzx ecx, byte [esi + 0x120]
test cl, cl
je 0xb175bb
lea edx, [esi + 0x121]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0xb175b0
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
mov edx, eax
je 0xb175db
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0xb175d0
mov byte [edx], 0
movzx eax, byte [esi + 0x28]
test al, al
je 0xb175fb
lea ecx, [esi + 0x29]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0xb175f0
mov dword [esi + 0x18], edx
mov byte [edx], 0
push 0
call fcn.00b2c200
add esp, 4
xor ecx, ecx
mov dword [esi + 0xb0], eax
test eax, eax
setne cl
jmp dword [ecx*4 + 0xcc53dc]