Function at 0x4184e0
Capabilities:
Encode data using xor

Disassembly:
inc eax
push ebp
inc ecx
push esp
inc ecx
push ebp
inc ecx
push esi
inc ecx
push edi
dec eax
sub esp, 0x1f0
dec eax
lea ebp, [esp + 0x20]
dec eax
mov dword [ebp + 0x208], ebx
dec eax
mov dword [ebp + 0x210], esi
dec eax
mov dword [ebp + 0x218], edi
dec eax
mov eax, dword [0x151596]
dec eax
xor eax, ebp
dec eax
mov dword [ebp + 0x1c0], eax
mov al, byte [ecx + 0x1c]
mov edi, 0xfffffff
inc esp
mov esi, dword [ecx + 0x10]
dec esp
mov esp, ecx
inc esp
mov ebp, dword [ecx + 0x20]
inc esp
and esi, edi
mov edx, dword [ecx]
inc esp
and ebp, edi
dec eax
mov ebx, dword [ecx + 8]
and edx, edi
mov byte [ebp], al
dec eax
mov dword [ebp + 0x68], ecx
dec eax
lea ecx, [0xfffe82b5]
inc ecx
mov eax, ebp
dec eax
add eax, ecx
dec esp
mov dword [ebp + 0x40], esi
dec eax
mov dword [ebp + 0x30], eax
call fcn.00416f70
dec eax
mov dword [ebp + 0x60], eax
dec esp
mov edi, eax
mov esi, 8
dec ebp
test esi, esi
je 0x418a34
inc ecx
mov ecx, esi
and ecx, 7
mov dword [ebp + 0x10], ecx
inc ecx
mov ecx, ebp
not ecx
jne 0x4185a1
inc esp
mov edx, dword [ebp + 0x10]
inc ebp
xor esi, esi
inc esp
mov dword [ebp + 0x1c], ebp
inc ebp
xor ecx, ecx
mov dword [ebp + 0x18], ecx
dec eax
mov ecx, dword [ebp + 0x18]
dec esp
mov dword [ebp + 8], esi
jmp 0x4187e1
movzx edi, bx
dec eax
mov esi, ebx
dec eax
shr esi, 0x20
dec eax
mov eax, ebx
dec eax
shr eax, 0x10
inc esp
mov eax, esi
inc esp
movzx ebx, ax
dec esp
mov ecx, ebx
inc esp
movzx edx, si
inc ecx
mov eax, ebp
ror eax, 0x16
inc edx
lea edx, [esi + ebp]
ror edx, 0x17
inc ecx
imul edx, ebx
dec ecx
shr ecx, 0x30
dec eax
mov dword [ebp + 0x80], ebx
dec eax
mov dword [ebp + 0x88], ebx
dec eax
mov dword [ebp + 0x90], ebx
add edx, eax
dec eax
mov dword [ebp + 0x98], ebx
xor edx, ecx
dec eax
mov dword [ebp + 0xa0], ebx
inc esp
sub eax, edx
dec eax
mov dword [ebp + 0xa8], ebx
mov eax, edx
inc ecx
ror eax, 0xd
ror eax, 0x14
inc esp
imul eax, edi
dec eax
mov dword [ebp + 0xb0], ebx
dec eax
mov dword [ebp + 0xb8], ebx
dec eax
mov dword [ebp + 0xc0], ebx
dec eax
mov dword [ebp + 0xc8], ebx
inc esp
add eax, eax
dec eax
mov dword [ebp + 0xd0], ebx
inc ebp
xor eax, ebp
dec eax
mov dword [ebp + 0xd8], ebx
inc ecx
mov ecx, eax
dec eax
mov dword [ebp + 0xe0], ebx
inc ecx
xor ecx, edx
dec eax
mov dword [ebp + 0xe8], ebx
rol ecx, 5
inc ecx
mov eax, eax
shr eax, 3
inc ecx
imul ecx, ecx
dec eax
mov dword [ebp + 0xf0], ebx
dec eax
mov dword [ebp + 0xf8], ebx
add ecx, eax
xor ecx, edx
mov edx, ebx
sub edx, ecx
mov eax, ecx
ror edx, 0x1b
inc ecx
imul edx, edx
ror eax, 0x1f
xor edx, eax
inc ecx
xor edx, eax
mov eax, edx
inc esp
mov eax, edx
inc ecx
xor eax, edx
inc ecx
ror eax, 0xe
inc ecx
imul eax, ebx
inc esp
add eax, eax
inc esp
xor eax, ecx
inc ecx
mov ecx, eax
inc ecx
mov eax, eax
xor ecx, esi
ror eax, 9
ror ecx, 0x16
imul ecx, edi
add ecx, eax
xor ecx, edx
mov edx, ebx
sub edx, ecx
mov eax, ecx
ror edx, 0xd
inc ecx
imul edx, ecx
ror eax, 0x12
sub edx, eax
inc ecx
xor edx, eax
inc esp
mov eax, edx
inc esp
sub eax, ebx
inc ecx
ror eax, 0x17
mov eax, edx
ror eax, 0x18
inc ebp
imul eax, edx
inc esp
mov edx, dword [ebp + 0x10]
dec eax
mov dword [ebp + 0x100], ebx
dec eax
mov dword [ebp + 0x108], ebx
dec eax
mov dword [ebp + 0x110], ebx
inc esp
sub eax, eax
dec eax
mov dword [ebp + 0x118], ebx
inc esp
xor eax, ecx
xor ecx, ecx
inc ecx
mov eax, eax
dec eax
mov dword [ebp + 0x20], ecx
ror eax, 9
inc ebp
mov esi, eax
inc esp
xor esi, esi
inc ecx
ror esi, 0x1c
inc ebp
imul esi, ebx
inc ebp
mov ebx, edx
inc esp
sub esi, eax
inc esp
xor esi, edx
inc ecx
mov edx, edx
inc ecx
mov eax, esi
inc esp
mov dword [ebp + 8], esi
ror eax, 1
inc ebp
mov ecx, esi
inc esp
sub ecx, esi
inc ecx
ror ecx, 0x14
inc esp
imul ecx, edi
inc esp
xor ecx, eax
dec eax
mov eax, dword [ebp + 0x30]
inc ebp
xor ecx, eax
dec esp
mov eax, eax
inc esp
mov dword [ebp + 0xc], ecx
inc ebp
test edx, edx
je 0x41877a
dec eax
lea ecx, [ebp + 0x20]
dec eax
sub ecx, eax
inc ecx
mov al, byte [eax]
inc ecx
mov byte [eax + ecx], al
dec ecx
inc eax
dec ecx
sub ebx, 1
jne 0x41875e
inc esp
mov ecx, dword [ebp + 0xc]
inc esp
mov esi, dword [ebp + 8]
dec eax
mov ecx, dword [ebp + 0x20]
inc esp
xor ecx, dword [ebp + 0x24]
dec esp
lea eax, [ebp + 8]
inc esp
xor esi, ecx
inc esp
mov dword [ebp + 0xc], ecx
mov esi, 8
inc esp
mov dword [ebp + 8], esi
mov eax, esi
dec eax
mov dword [ebp + 0x18], ecx
dec edi
lea eax, [eax + edx]
dec eax
sub eax, edx
je 0x4187b6
inc ecx
mov byte [eax], 0
dec ecx
inc eax
dec eax
sub eax, 1
jne 0x4187a1
inc esp
mov ecx, dword [ebp + 0xc]
inc esp
mov esi, dword [ebp + 8]
dec esp
lea eax, [ebp + 8]
inc ebp
test edx, edx
je 0x4187e1
dec eax
lea eax, [ebp + 8]
dec ebp
mov ecx, edi
dec esp
sub ecx, eax
inc ecx
mov al, byte [eax]
inc ebx
mov byte [eax + ecx], al
dec ecx
inc eax
dec eax
sub edx, 1
jne 0x4187c9
inc esp
mov ecx, dword [ebp + 0xc]
inc esp
mov esi, dword [ebp + 8]
dec esp
mov ebp, dword [ebp + 0x40]
inc ecx
mov eax, edx
dec ecx
add eax, edi
dec eax
mov dword [ebp + 0x50], eax
dec ecx
mov eax, ebp
dec eax
shr eax, 3
dec eax
mov dword [ebp + 0x48], eax
dec eax
test eax, eax
je 0x418a28
dec esp
mov esp, dword [ebp + 0x30]
dec eax
mov eax, ebx
dec esp
mov ebp, dword [ebp + 0x48]
dec eax
mov edx, ebx
dec eax
shr eax, 0x30
dec esp
mov ebx, ebx
dec eax
shr edx, 0x10
dec ecx
shr ebx, 0x20
dec eax
mov dword [ebp + 0x58], eax
dec ebp
sub esp, edi
dec esp
mov edi, dword [ebp + 0x50]
movzx eax, bx
mov dword [ebp + 0x10], eax
dec eax
mov dword [ebp + 0x120], ebx
dec eax
mov dword [ebp + 0x128], ebx
dec eax
mov dword [ebp + 0x130], ebx
dec eax
mov dword [ebp + 0x138], ebx
dec eax
mov dword [ebp + 0x140], ebx
dec eax
mov dword [ebp + 0x148], ebx
dec eax
mov dword [ebp + 0x150], ebx
dec eax
mov dword [ebp + 0x158], ebx
dec eax
mov dword [ebp + 0x160], ebx
dec eax
mov dword [ebp + 0x168], ebx
dec eax
mov dword [ebp + 0x170], ebx
dec eax
mov dword [ebp + 0x178], ebx
dec eax
mov dword [ebp + 0x180], ebx
dec eax
mov dword [ebp + 0x188], ebx
dec eax
mov dword [ebp + 0x190], ebx
dec eax
mov dword [ebp + 0x198], ebx
dec eax
mov dword [ebp + 0x1a0], ebx
dec eax
mov dword [ebp + 0x1a8], ebx
dec eax
mov dword [ebp + 0x28], edx
dec eax
mov dword [ebp + 0x1b0], ebx
dec eax
mov dword [ebp + 0x1b8], ebx
dec esp
mov dword [ebp + 0x38], ebx
dec ebx
mov eax, dword [esp + edi]
inc ebp
mov edx, ebx
movzx edi, dx
dec esp
mov eax, eax
dec ecx
shr eax, 0x20
inc ebp
xor eax, ecx
dec eax
mov dword [ebp + 0x20], eax
inc ecx
mov edx, eax
ror edx, 0x16
inc edi
lea ecx, [ebx + eax]
inc ebp
movzx ebx, bx
inc ecx
ror ecx, 0x17
inc esp
imul ecx, edi
inc esp
add ecx, edx
inc esp
xor ecx, eax
inc ebp
xor ecx, esi
dec esp
mov esi, dword [ebp + 0x58]
inc ebp
sub edx, ecx
inc ecx
mov edx, ecx
ror edx, 0x14
inc ecx
ror edx, 0xd
inc esp
imul edx, dword [ebp + 0x10]
inc esp
add edx, edx
inc ebp
xor edx, eax
inc ebp
mov eax, ebx
inc ebp
xor eax, edx
inc ecx
mov edx, edx
shr edx, 3
inc ecx
rol eax, 5
inc ebp
imul eax, esi
inc esp
add eax, edx
inc ebp
xor eax, ecx
inc esp
mov ecx, ebx
inc ebp
sub ecx, eax
inc ecx
mov edx, eax
ror edx, 0x1f
inc ecx
ror ecx, 0x1b
inc ebp
imul ecx, ebx
inc esp
xor ecx, edx
inc ebp
xor ecx, edx
inc ecx
mov edx, ecx
inc ebp
mov edx, ecx
inc ecx
xor edx, ebx
inc ecx
ror edx, 0xe
imul edx, edi
inc esp
add edx, edx
inc ebp
xor edx, eax
inc ebp
mov eax, edx
inc ecx
mov edx, edx
inc esp
xor eax, dword [ebp + 0x38]
ror edx, 9
inc ecx
ror eax, 0x16
inc esp
imul eax, dword [ebp + 0x10]
inc esp
add eax, edx
inc ebp
xor eax, ecx
inc esp
mov ecx, ebx
inc ebp
sub ecx, eax
inc ecx
mov edx, eax
ror edx, 0x12
inc ecx
ror ecx, 0xd
inc ebp
imul ecx, esi
inc esp
sub ecx, edx
inc ebp
xor ecx, edx
inc ebp
mov edx, ecx
inc ecx
mov edx, ecx
inc esp
sub edx, ebx
ror edx, 0x18
inc ecx
ror edx, 0x17
inc ebp
imul edx, ebx
dec esp
mov ebx, dword [ebp + 0x38]
inc esp
sub edx, edx
inc ebp
xor edx, eax
inc ebp
mov esi, edx
inc ecx
mov edx, edx
inc ebp
xor esi, ebx
ror edx, 9
inc ecx
ror esi, 0x1c
inc esp
imul esi, edi
inc esp
sub esi, edx
inc ebp
xor esi, ecx
inc ecx
mov edx, esi
inc esp
xor esi, dword [ebp + 0x18]
inc esp
mov ecx, edx
inc ebp
sub ecx, ebx
ror edx, 1
inc ecx
ror ecx, 0x14
inc esp
imul ecx, dword [ebp + 0x10]
dec eax
shr ecx, 0x20
inc ebp
mov dword [edi], esi
dec eax
mov dword [ebp + 0x18], eax
inc esp
xor ecx, edx
dec eax
mov edx, dword [ebp + 0x28]
inc esp
xor ecx, ecx
dec eax
mov ecx, eax
inc ebp
xor ecx, edx
inc ebp
mov dword [edi + 4], ecx
dec esp
add edi, esi
dec ecx
sub ebp, 1
jne 0x4188c5
dec esp
mov edi, dword [ebp + 0x60]
dec esp
mov esp, dword [ebp + 0x68]
dec esp
mov ebp, dword [ebp + 0x40]
inc esp
mov dword [ebp + 8], esi
inc esp
mov dword [ebp + 0xc], ecx
inc ebx
mov al, byte [edi + ebp - 1]
mov edi, 0xfffffff
jmp 0x418a37
mov al, byte [ebp]
cmp al, byte [ebp]
je 0x418a41
call fcn.00416770
inc ecx
mov ecx, dword [esp + 0x14]
test edi, ecx
je 0x418a6f
dec eax
lea eax, [0xfffe7daf]
dec eax
and ecx, edi
dec eax
mov dword [ebp + 0x28], eax
dec eax
lea edx, [ebp + 0x28]
dec ecx
add ecx, edi
mov al, byte [edx]
dec eax
inc edx
mov byte [ecx], al
dec eax
inc ecx
dec eax
sub esi, 1
jne 0x418a5f
inc ecx
mov ecx, dword [esp + 0x18]
test edi, ecx
je 0x418a9a
dec eax
and ecx, edi
dec eax
lea eax, [ecx + 0xf]
dec eax
cmp eax, ecx
ja 0x418a8e
dec eax
mov eax, 0xfffffff0
invalid
dec eax
and eax, 0xfffffff0
call 0x47b1f0
dec eax
sub esp, eax
dec eax
and dword [ebp + 0x78], 0
dec esp
lea ecx, [ebp + 0x70]
dec eax
and dword [ebp + 0x70], 0
dec esp
lea eax, [ebp + 0x78]
dec ecx
mov edx, edi
call fcn.004173fc
dec ecx
mov eax, edi
dec eax
mov ecx, dword [ebp + 0x1c0]
dec eax
xor ecx, ebp
call fcn.0043bd60
dec eax
mov ebx, dword [ebp + 0x208]
dec eax
mov esi, dword [ebp + 0x210]
dec eax
mov edi, dword [ebp + 0x218]
dec eax
lea esp, [ebp + 0x1d0]
inc ecx
pop edi
inc ecx
pop esi
inc ecx
pop ebp
inc ecx
pop esp
pop ebp
ret