Function at 0x505800
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
mov eax, dword [0x5601cc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov ecx, dword [eax]
mov esi, dword [0x514c74]
mov dword [ebp - 0x158], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x15c], ecx
mov ecx, dword [eax + 8]
push edi
push dword [ebx]
mov dword [ebp - 0x160], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x170], eax
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x168], eax
call esi
push dword [ebx + 4]
mov edi, eax
mov dword [ebp - 0x144], edi
call esi
mov ebx, eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x140], ebx
push dword [eax + 8]
call esi
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0xc]
call esi
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x10]
call esi
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x14]
call esi
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x18]
call esi
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x1c]
call esi
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x20]
call esi
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x24]
call esi
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x28]
call esi
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x2c]
call esi
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x30]
call esi
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x34]
call esi
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x38]
call esi
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x148]
push dword [eax + 0x3c]
call esi
mov ecx, dword [ebp - 0x110]
mov esi, eax
xor ecx, dword [ebp - 0x124]
xor ecx, dword [ebp - 0x13c]
xor ecx, edi
mov dword [ebp - 0x108], esi
mov edi, dword [ebp - 0x10c]
xor edi, dword [ebp - 0x120]
xor edi, dword [ebp - 0x138]
xor edi, ebx
rol ecx, 1
mov dword [ebp - 0x14c], ecx
mov eax, dword [ebp - 0x14c]
xor eax, dword [ebp - 0x118]
xor eax, dword [ebp - 0x130]
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x104], ecx
mov ecx, esi
xor ecx, dword [ebp - 0x11c]
xor ecx, dword [ebp - 0x134]
xor ecx, dword [ebp - 0x13c]
rol edi, 1
mov ebx, edi
rol ecx, 1
xor ebx, dword [ebp - 0x114]
xor ebx, dword [ebp - 0x12c]
xor ebx, dword [ebp - 0x134]
rol ebx, 1
rol eax, 1
mov edx, ebx
xor edx, dword [ebp - 0x108]
mov esi, eax
xor esi, dword [ebp - 0x10c]
xor edx, dword [ebp - 0x120]
xor esi, dword [ebp - 0x124]
xor edx, dword [ebp - 0x128]
xor esi, dword [ebp - 0x12c]
mov dword [ebp - 0x154], edi
mov dword [ebp - 0x100], edi
mov edi, ecx
xor edi, dword [ebp - 0x110]
xor edi, dword [ebp - 0x128]
xor edi, dword [ebp - 0x130]
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x16c], ebx
mov dword [ebp - 0xf4], ebx
mov ebx, dword [ebp - 0x150]
xor ebx, dword [ebp - 0x114]
xor ebx, dword [ebp - 0x11c]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0xf8], eax
rol edi, 1
rol edx, 1
mov eax, edi
xor eax, dword [ebp - 0x14c]
xor ebx, edx
xor eax, dword [ebp - 0x11c]
xor eax, dword [ebp - 0x124]
mov dword [ebp - 0xfc], ecx
rol esi, 1
rol ebx, 1
mov ecx, esi
xor ecx, dword [ebp - 0x154]
xor ecx, dword [ebp - 0x118]
xor ecx, dword [ebp - 0x120]
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0xdc], ebx
mov ebx, dword [ebp - 0x110]
xor dword [ebp - 0x148], ebx
mov ebx, dword [ebp - 0x118]
xor dword [ebp - 0x148], ebx
rol eax, 1
xor dword [ebp - 0x148], eax
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x148]
rol ecx, 1
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xe0], ecx
rol eax, 1
xor esi, dword [ebp - 0x14c]
mov ebx, dword [ebp - 0x16c]
xor ebx, dword [ebp - 0x10c]
xor esi, dword [ebp - 0x10c]
xor ebx, dword [ebp - 0x114]
xor esi, eax
xor edi, dword [ebp - 0x108]
xor ebx, ecx
xor edi, dword [ebp - 0x110]
lea ecx, [ebp - 0xfc]
xor edi, dword [ebp - 0x150]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x154]
xor eax, dword [ebp - 0x108]
rol ebx, 1
xor eax, ebx
rol edi, 1
xor eax, edx
rol esi, 1
rol eax, 1
mov edx, 0x30
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], eax
nop word [eax + eax]
mov eax, dword [ecx + 0x2c]
lea ecx, [ecx + 4]
xor eax, dword [ecx + 0x14]
xor eax, dword [ecx - 0xc]
xor eax, dword [ecx - 4]
rol eax, 1
mov dword [ecx + 0x34], eax
sub edx, 1
jne 0x505b60
mov eax, dword [ebp - 0x158]
xor edi, edi
mov ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x15c]
mov esi, dword [ebp - 0x160]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x14c], edx
jmp 0x505bb6
mov eax, dword [ebp - 0x150]
mov edx, ebx
rol eax, 5
not edx
and edx, ecx
mov ecx, esi
and ecx, ebx
or edx, ecx
mov ecx, esi
add eax, edx
mov esi, ebx
add eax, dword [ebp + edi*4 - 0x144]
inc edi
add eax, dword [0x563b28]
add eax, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x148]
mov ebx, dword [ebp - 0x150]
ror esi, 2
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x150], eax
cmp edi, 0x14
jl 0x505bb0
cmp edi, 0x28
jge 0x505c53
nop word [eax + eax]
xor ecx, esi
rol eax, 5
xor ecx, ebx
add eax, ecx
mov ecx, esi
add eax, dword [ebp + edi*4 - 0x144]
mov esi, ebx
add eax, dword [0x563b2c]
inc edi
mov ebx, dword [ebp - 0x150]
add eax, edx
mov edx, dword [ebp - 0x148]
ror esi, 2
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x150], eax
cmp edi, 0x28
jl 0x505c10
mov dword [ebp - 0x14c], edx
cmp edi, 0x3c
jge 0x505caf
mov dword [ebp - 0x154], eax
nop
mov edx, esi
rol eax, 5
or edx, ebx
and edx, ecx
mov ecx, esi
and ecx, ebx
or edx, ecx
mov ecx, esi
add eax, edx
mov esi, ebx
add eax, dword [ebp + edi*4 - 0x144]
inc edi
add eax, dword [0x563b30]
add eax, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x148]
mov ebx, dword [ebp - 0x154]
ror esi, 2
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x154], eax
cmp edi, 0x3c
jl 0x505c60
cmp edi, 0x50
jge 0x505cfd
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x154], eax
xor ecx, esi
rol eax, 5
xor ecx, ebx
add eax, ecx
mov ecx, esi
add eax, dword [ebp + edi*4 - 0x144]
mov esi, ebx
add eax, dword [0x563b34]
inc edi
mov ebx, dword [ebp - 0x154]
add eax, edx
mov edx, dword [ebp - 0x148]
ror esi, 2
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x154], eax
cmp edi, 0x50
jl 0x505cc0
add eax, dword [ebp - 0x158]
mov edi, dword [ebp - 0x170]
mov dword [edi], eax
mov eax, dword [ebp - 0x15c]
add eax, ebx
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x160]
add eax, esi
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x164]
add eax, ecx
mov ecx, dword [ebp - 4]
mov dword [edi + 0xc], eax
xor ecx, ebp
mov eax, dword [ebp - 0x168]
add eax, edx
mov dword [edi + 0x10], eax
pop edi
pop esi
pop ebx
call fcn.0043c187
mov esp, ebp
pop ebp
ret