Function at 0x40255a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x437084]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push 5
lea ecx, [ebp - 0x30]
lea eax, [edi + 0x78]
pop edx
mov esi, dword [eax - 0x78]
xor esi, dword [eax - 0x50]
mov ebx, dword [eax - 0x74]
xor ebx, dword [eax - 0x4c]
xor esi, dword [eax - 0x28]
xor ebx, dword [eax - 0x24]
xor esi, dword [eax + 0x28]
xor ebx, dword [eax + 0x2c]
xor esi, dword [eax]
xor ebx, dword [eax + 4]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
add eax, 8
add ecx, 8
dec edx
jne 0x402575
mov dword [ebp - 0x48], 0x438d08
mov dword [ebp - 0x4c], 0x18
mov esi, 0x438910
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], 5
movzx eax, byte [esi - 3]
push dword [ebp + eax*8 - 0x2c]
push dword [ebp + eax*8 - 0x30]
call fcn.004024b0
pop ecx
pop ecx
movzx ecx, byte [esi]
xor eax, dword [ebp + ecx*8 - 0x30]
xor edx, dword [ebp + ecx*8 - 0x2c]
mov ecx, dword [ebp - 0x44]
push 5
pop ebx
xor dword [ecx], eax
xor dword [ecx + 4], edx
add ecx, 0x28
dec ebx
jne 0x4025e1
add dword [ebp - 0x44], 8
inc esi
dec dword [ebp - 0x40]
jne 0x4025bd
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x40], 0x18
movzx edx, byte [ebx + 0x438de0]
lea esi, [edi + edx*8]
mov edx, dword [esi]
mov dword [ebp - 0x58], edx
mov edx, dword [esi + 4]
mov dword [ebp - 0x54], edx
movzx edx, byte [ebx + 0x438dc8]
push edx
push ecx
push eax
call fcn.004024cf
mov ecx, dword [ebp - 0x54]
add esp, 0xc
inc ebx
dec dword [ebp - 0x40]
mov dword [esi], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 4], edx
jne 0x402603
mov ecx, dword [ebp - 0x48]
mov eax, edi
lea esi, [ebp - 0x20]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], 8
mov byte [ebp - 0x34], 0
mov byte [ebp - 0x3b], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x38], 0
mov byte [ebp - 0x39], 0
mov byte [ebp - 0x36], 5
mov dl, byte [eax + 8]
mov bl, byte [eax + 0x10]
mov cl, byte [eax]
mov byte [ebp - 0x3a], dl
not dl
mov byte [ebp - 0x33], bl
and dl, byte [ebp - 0x33]
mov bl, byte [eax + 0x18]
xor dl, cl
xor byte [ebp - 0x39], dl
mov byte [ebp - 0x37], dl
mov byte [eax], dl
mov dl, byte [ebp - 0x33]
not dl
mov byte [ebp - 0x31], bl
and dl, byte [ebp - 0x31]
mov bl, byte [eax + 0x20]
xor dl, byte [ebp - 0x3a]
mov byte [ebp - 0x32], bl
xor byte [ebp - 0x38], dl
mov byte [eax + 8], dl
mov byte [ebp - 0x37], dl
mov dl, byte [ebp - 0x31]
not dl
and dl, bl
xor byte [ebp - 0x33], dl
mov dl, byte [ebp - 0x33]
xor byte [ebp - 0x35], dl
mov byte [eax + 0x10], dl
mov dl, bl
not dl
and dl, cl
xor byte [ebp - 0x31], dl
mov dl, byte [ebp - 0x31]
not cl
and cl, byte [ebp - 0x3a]
mov byte [eax + 0x18], dl
xor byte [ebp - 0x32], cl
mov dl, byte [ebp - 0x3b]
mov cl, byte [ebp - 0x32]
xor dl, byte [ebp - 0x31]
xor byte [ebp - 0x34], cl
dec byte [ebp - 0x36]
mov byte [eax + 0x20], cl
add eax, 0x28
cmp byte [ebp - 0x36], 0
mov byte [ebp - 0x3b], dl
jne 0x402665
mov ecx, dword [ebp - 0x44]
mov cl, byte [ecx]
xor byte [eax - 0xc8], cl
xor cl, byte [ebp - 0x39]
inc dword [ebp - 0x44]
mov byte [esi - 0x10], cl
mov cl, byte [ebp - 0x38]
mov byte [esi - 8], cl
mov cl, byte [ebp - 0x35]
mov byte [esi], cl
mov cl, byte [ebp - 0x34]
add eax, 0xffffff39
mov byte [esi + 8], dl
mov byte [esi + 0x10], cl
inc esi
dec dword [ebp - 0x40]
jne 0x40264d
dec dword [ebp - 0x4c]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
jne 0x4025ae
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.00416782
leave
ret