Function at 0x54409c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 8]
mov ecx, 8
call fcn.00402a38
cmp byte [ebp - 9], 0
je 0x544194
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
xor dword [edx], eax
mov dword [ebp - 0x10], 1
xor eax, eax
mov al, byte [ebp - 0x15]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x48]
xor edx, edx
mov dl, byte [ebp - 0x16]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0x448]
xor edx, edx
mov dl, byte [ebp - 0x17]
mov ecx, dword [ebp - 4]
xor eax, dword [ecx + edx*4 + 0x848]
xor edx, edx
mov dl, byte [ebp - 0x18]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0xc48]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [edx + ecx*4]
mov ecx, dword [ebp - 8]
xor edx, dword [ecx + 4]
xor eax, edx
mov edx, dword [ebp - 8]
mov dword [edx + 4], eax
xor eax, eax
mov al, byte [ebp - 0x11]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x48]
xor edx, edx
mov dl, byte [ebp - 0x12]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0x448]
xor edx, edx
mov dl, byte [ebp - 0x13]
mov ecx, dword [ebp - 4]
xor eax, dword [ecx + edx*4 + 0x848]
xor edx, edx
mov dl, byte [ebp - 0x14]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0xc48]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [edx + ecx*4 + 4]
mov ecx, dword [ebp - 8]
xor edx, dword [ecx]
xor eax, edx
mov edx, dword [ebp - 8]
mov dword [edx], eax
add dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], 0x10
jle 0x5440d6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [ebp - 8]
xor dword [edx + 4], eax
jmp 0x54425e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [ebp - 8]
xor dword [edx + 4], eax
mov dword [ebp - 0x10], 0x10
xor eax, eax
mov al, byte [ebp - 0x11]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x48]
xor edx, edx
mov dl, byte [ebp - 0x12]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0x448]
xor edx, edx
mov dl, byte [ebp - 0x13]
mov ecx, dword [ebp - 4]
xor eax, dword [ecx + edx*4 + 0x848]
xor edx, edx
mov dl, byte [ebp - 0x14]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0xc48]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [edx + ecx*4]
mov ecx, dword [ebp - 8]
xor edx, dword [ecx]
xor eax, edx
mov edx, dword [ebp - 8]
mov dword [edx], eax
xor eax, eax
mov al, byte [ebp - 0x15]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x48]
xor edx, edx
mov dl, byte [ebp - 0x16]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0x448]
xor edx, edx
mov dl, byte [ebp - 0x17]
mov ecx, dword [ebp - 4]
xor eax, dword [ecx + edx*4 + 0x848]
xor edx, edx
mov dl, byte [ebp - 0x18]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + edx*4 + 0xc48]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [edx + ecx*4 - 4]
mov ecx, dword [ebp - 8]
xor edx, dword [ecx + 4]
xor eax, edx
mov edx, dword [ebp - 8]
mov dword [edx + 4], eax
sub dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], 1
jge 0x5441a7
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
xor dword [edx], eax
mov esp, ebp
pop ebp
ret