Function at 0x401584
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ecx, dword [eax]
mov esi, dword [eax + 4]
push 0x1d
push ecx
call fcn.00417468
push 0x1d
push esi
mov dword [ebp - 8], eax
call fcn.00417468
add esp, 0x10
cmp dword [ebp + 0x10], 0
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
je 0x4017d6
push 0x3f
lea edi, [eax + 8]
mov dword [ebp + 0xc], 4
pop esi
mov eax, dword [edi - 4]
mov ebx, dword [edi - 8]
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push 4
push eax
call fcn.00417468
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
mov eax, dword [edi + 4]
xor ecx, dword [ebx*4 + 0x420860]
mov ebx, dword [edi]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
xor ebx, dword [ebp - 4]
push eax
call fcn.00417468
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
mov eax, dword [edi + 0xc]
xor ecx, dword [ebx*4 + 0x420860]
mov ebx, dword [edi + 8]
xor dword [ebp - 8], ecx
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push eax
call fcn.00417468
mov ecx, eax
shr ecx, 0x12
mov edx, eax
and ecx, esi
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
push 4
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
mov eax, dword [edi + 0x14]
xor ecx, dword [ebx*4 + 0x420860]
mov ebx, dword [edi + 0x10]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
xor ebx, dword [ebp - 4]
push eax
call fcn.00417468
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
add esp, 0x20
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
add edi, 0x20
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
xor ecx, dword [ebx*4 + 0x420860]
xor dword [ebp - 8], ecx
dec dword [ebp + 0xc]
jne 0x4015c7
jmp 0x4019ed
push 0x3f
lea edi, [eax + 0x70]
mov dword [ebp + 0xc], 4
pop esi
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 8]
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push 4
push eax
call fcn.00417468
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
mov eax, dword [edi + 4]
xor ecx, dword [ebx*4 + 0x420860]
mov ebx, dword [edi]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
xor ebx, dword [ebp - 4]
push eax
call fcn.00417468
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
mov eax, dword [edi - 4]
xor ecx, dword [ebx*4 + 0x420860]
mov ebx, dword [edi - 8]
xor dword [ebp - 8], ecx
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push eax
call fcn.00417468
mov ecx, eax
shr ecx, 0x12
mov edx, eax
and ecx, esi
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
push 4
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
mov eax, dword [edi - 0xc]
xor ecx, dword [ebx*4 + 0x420860]
mov ebx, dword [edi - 0x10]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
xor ebx, dword [ebp - 4]
push eax
call fcn.00417468
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
add esp, 0x20
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x420760]
and edx, esi
sub edi, 0x20
xor ecx, dword [edx*4 + 0x420560]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x420360]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x420660]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x420460]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x420260]
xor ecx, dword [eax*4 + 0x420960]
xor ecx, dword [ebx*4 + 0x420860]
xor dword [ebp - 8], ecx
dec dword [ebp + 0xc]
jne 0x4017e3
push 3
push dword [ebp - 4]
call fcn.00417468
mov esi, dword [ebp + 8]
push 3
push dword [ebp - 8]
mov dword [esi], eax
call fcn.00417468
add esp, 0x10
mov dword [esi + 4], eax
pop edi
pop esi
pop ebx
leave
ret