Function at 0x41c0b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x586420]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0xb4], edx
mov edx, dword [eax + 0xa4]
push ebx
push esi
xor esi, esi
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xbc], ecx
mov ecx, dword [eax + 0xa0]
or esi, ecx
xor eax, eax
or edx, eax
push edi
mov edi, esi
mov eax, edx
shrd eax, edi, 0x10
shr edi, 0x10
mov ebx, esi
mov ecx, edi
mov edi, edx
shld esi, edx, 0x10
shld ebx, edi, 0x10
shl edi, 0x10
xor eax, edi
xor ecx, ebx
shl edx, 0x10
and eax, 0xffff
xor eax, edx
and ecx, 0xffff
xor ecx, esi
mov edx, eax
mov esi, ecx
shrd edx, esi, 8
mov edi, eax
mov ebx, ecx
shld ebx, edi, 8
shr esi, 8
xor esi, ebx
shld ecx, eax, 8
and esi, 0xff00ff
shl edi, 8
xor edx, edi
xor esi, ecx
and edx, 0xff00ff
shl eax, 8
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0xb4]
xor edx, eax
mov dword [ebp - 0x14], edx
test esi, esi
jne 0x41c16c
mov esi, 4
jmp 0x41c195
cmp esi, 4
jae 0x41c195
lea eax, [esi + 1]
mov byte [ebp + esi - 0x18], 0
cmp eax, 4
jae 0x41c195
mov edx, 4
sub edx, eax
push edx
lea ecx, [ebp + eax - 0x18]
push 0
push ecx
call fcn.0052acb6
add esp, 0xc
mov edi, dword [ebp - 0xb8]
mov eax, 0x10
sub eax, esi
push eax
lea ecx, [ebp + esi - 0x18]
push ecx
mov ecx, edi
call fcn.0041a470
mov eax, dword [edi + 8]
lea esi, [eax + eax*2]
add esi, esi
mov edx, 0x21
sub edx, esi
lea ebx, [esi*4]
push ebx
lea eax, [edi + edx*4]
push eax
lea ecx, [ebp - 0x94]
push ecx
call fcn.0052acbc
mov edx, 0x1e
sub edx, esi
add edx, edx
add esp, 0x14
add edx, edx
push edx
lea eax, [edi + 0xc]
push eax
lea eax, [ebp + ebx - 0x94]
push eax
call fcn.0052acbc
add esp, 0xc
mov dword [ebp - 0xac], 0xa
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
push 0x6c
lea ecx, [ebp - 0x94]
push ecx
lea edx, [ebp - 0x88]
push edx
call dword [0x52f128]
mov edx, dword [ebp - 0x84]
xor dword [ebp - 0x58], edx
mov dword [ebp - 0x94], edi
xor edi, edx
mov eax, edi
mov edi, dword [ebp - 0x80]
xor dword [ebp - 0x54], edi
xor esi, edi
mov ecx, ebx
mov ebx, dword [ebp - 0x7c]
xor dword [ebp - 0x50], ebx
xor ecx, ebx
mov dword [ebp - 0x8c], ecx
mov edx, eax
mov ecx, eax
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x578558]
mov edi, eax
shr edi, 8
and edi, 0xff
mov edi, dword [edi*4 + 0x578d58]
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x578958]
xor ecx, edx
xor ecx, edi
mov dword [ebp - 0x98], edi
mov edi, esi
and eax, 0xff
mov eax, dword [eax*4 + 0x579158]
xor ecx, eax
mov ebx, esi
shr ebx, 8
shr edi, 0x10
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578d58]
xor dword [ebp - 0x98], ebx
mov dword [ebp - 0xa8], ecx
mov ecx, esi
and edi, 0xff
mov edi, dword [edi*4 + 0x578958]
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x578558]
xor edi, ecx
xor edi, ebx
and esi, 0xff
mov esi, dword [esi*4 + 0x579158]
mov dword [ebp - 0x9c], edi
xor dword [ebp - 0x9c], esi
mov edi, dword [ebp - 0x8c]
xor eax, esi
mov ebx, edi
shr ebx, 0x10
mov esi, edi
shr esi, 0x18
mov esi, dword [esi*4 + 0x578558]
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578958]
xor ecx, esi
xor esi, ebx
xor edx, ebx
mov ebx, edi
shr ebx, 8
and ebx, 0xff
xor esi, dword [ebx*4 + 0x578d58]
mov ebx, dword [ebp - 0x88]
and edi, 0xff
mov edi, dword [edi*4 + 0x579158]
xor esi, edi
add esp, 0xc
mov dword [ebp - 0xb0], esi
xor eax, edi
mov edi, ebx
shr ebx, 0x10
shr edi, 0x18
mov edi, dword [edi*4 + 0x578558]
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578958]
xor ecx, edi
xor edi, ebx
xor edx, ebx
mov ebx, dword [ebp - 0x88]
shr ebx, 8
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578d58]
xor dword [ebp - 0x98], ebx
xor edi, ebx
mov dword [ebp - 0xa0], edi
mov edi, dword [ebp - 0x88]
mov ebx, dword [ebp - 0xa0]
and edi, 0xff
xor ebx, dword [edi*4 + 0x579158]
mov edi, eax
xor edi, ebx
mov dword [ebp - 0xa0], ebx
and edi, 0xff
mov ebx, edx
xor ebx, dword [ebp - 0x9c]
and ebx, 0xff0000
or edi, ebx
mov ebx, dword [ebp - 0x98]
xor ebx, esi
and ebx, 0xff00
or edi, ebx
mov dword [ebp - 0xa4], edi
mov ebx, edi
mov edi, ecx
xor edi, dword [ebp - 0xa8]
and edi, 0xff000000
or ebx, edi
mov edi, edx
shl edi, 8
xor edi, esi
and edi, 0xff0000
mov esi, eax
shr esi, 0x18
xor esi, dword [ebp - 0xa8]
mov dword [ebp - 0x94], ebx
and esi, 0xff
or edi, esi
mov esi, dword [ebp - 0x98]
shl esi, 8
xor esi, dword [ebp - 0xa0]
mov ebx, ecx
and esi, 0xff00
or edi, esi
mov esi, dword [ebp - 0x9c]
shl ebx, 8
xor ebx, esi
and ebx, 0xff000000
or edi, ebx
mov dword [ebp - 0x90], edi
mov ebx, eax
shr ebx, 0x10
xor ebx, esi
mov edi, edx
shl edi, 0x10
xor edi, dword [ebp - 0xa0]
and ebx, 0xff
mov esi, ecx
shl esi, 0x10
xor esi, dword [ebp - 0xb0]
and edi, 0xff0000
or edi, ebx
mov ebx, dword [ebp - 0x98]
and esi, 0xff000000
or edi, esi
mov esi, dword [ebp - 0xa8]
shr ebx, 0x10
xor ebx, esi
and ebx, 0xff00
or edi, ebx
mov dword [ebp - 0x8c], edi
shr eax, 8
xor eax, dword [ebp - 0xb0]
shl ecx, 0x18
xor ecx, dword [ebp - 0xa0]
shr edx, 8
and eax, 0xff
xor edx, esi
and ecx, 0xff000000
and edx, 0xff0000
or eax, edx
or eax, ecx
mov ecx, dword [ebp - 0x98]
shr ecx, 8
xor ecx, dword [ebp - 0x9c]
and ecx, 0xff00
or eax, ecx
dec dword [ebp - 0xac]
mov dword [ebp - 0x88], eax
jne 0x41c203
mov dword [ebp - 0xb4], 0xd
lea esp, [esp]
mov eax, dword [ebp - 0x94]
xor dword [ebp - 0x84], eax
xor dword [ebp - 0x58], eax
push 0x3c
lea edx, [ebp - 0x94]
push edx
lea eax, [ebp - 0x58]
mov ecx, 0xf
lea esi, [ebp - 0x58]
lea edi, [ebp - 0x130]
push eax
rep movsd dword es:[edi], dword [esi]
call dword [0x52f128]
mov eax, dword [ebp - 0x130]
mov edx, eax
mov ecx, 0xf
lea esi, [ebp - 0x130]
lea edi, [ebp - 0x94]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x12c]
mov ecx, eax
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x578558]
mov esi, eax
shr esi, 8
and esi, 0xff
mov esi, dword [esi*4 + 0x578d58]
shr edx, 0x10
mov dword [ebp - 0x98], esi
and edx, 0xff
mov edx, dword [edx*4 + 0x578958]
xor ecx, edx
xor ecx, esi
and eax, 0xff
mov eax, dword [eax*4 + 0x579158]
xor ecx, eax
mov esi, edi
shr esi, 0x10
and esi, 0xff
mov esi, dword [esi*4 + 0x578958]
mov ebx, edi
shr ebx, 8
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578d58]
xor dword [ebp - 0x98], ebx
mov dword [ebp - 0xa4], ecx
mov ecx, edi
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x578558]
xor esi, ecx
xor esi, ebx
and edi, 0xff
mov edi, dword [edi*4 + 0x579158]
xor esi, edi
xor eax, edi
mov edi, dword [ebp - 0x128]
mov dword [ebp - 0xa0], esi
mov ebx, edi
mov esi, edi
shr ebx, 0x10
shr esi, 0x18
mov esi, dword [esi*4 + 0x578558]
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578958]
xor ecx, esi
xor esi, ebx
xor edx, ebx
mov ebx, edi
shr ebx, 8
and ebx, 0xff
xor esi, dword [ebx*4 + 0x578d58]
mov ebx, dword [ebp - 0x124]
and edi, 0xff
mov edi, dword [edi*4 + 0x579158]
xor esi, edi
xor eax, edi
mov edi, ebx
add esp, 0xc
shr edi, 0x18
mov edi, dword [edi*4 + 0x578558]
mov dword [ebp - 0xac], esi
shr ebx, 0x10
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578958]
xor ecx, edi
xor edi, ebx
xor edx, ebx
mov ebx, dword [ebp - 0x124]
shr ebx, 8
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578d58]
xor dword [ebp - 0x98], ebx
xor edi, ebx
mov dword [ebp - 0x9c], edi
mov edi, dword [ebp - 0x124]
mov ebx, dword [ebp - 0x9c]
and edi, 0xff
xor ebx, dword [edi*4 + 0x579158]
mov edi, eax
xor edi, ebx
mov dword [ebp - 0x9c], ebx
and edi, 0xff
mov ebx, edx
xor ebx, dword [ebp - 0xa0]
and ebx, 0xff0000
or edi, ebx
mov ebx, dword [ebp - 0x98]
xor ebx, esi
and ebx, 0xff00
or edi, ebx
mov dword [ebp - 0xa8], edi
mov ebx, edi
mov edi, ecx
xor edi, dword [ebp - 0xa4]
and edi, 0xff000000
or ebx, edi
mov edi, edx
shl edi, 8
xor edi, esi
and edi, 0xff0000
mov esi, eax
shr esi, 0x18
xor esi, dword [ebp - 0xa4]
mov dword [ebp - 0x94], ebx
and esi, 0xff
or edi, esi
mov esi, dword [ebp - 0x98]
shl esi, 8
xor esi, dword [ebp - 0x9c]
mov ebx, ecx
and esi, 0xff00
or edi, esi
mov esi, dword [ebp - 0xa0]
shl ebx, 8
xor ebx, esi
and ebx, 0xff000000
or edi, ebx
mov dword [ebp - 0x90], edi
mov ebx, eax
shr ebx, 0x10
xor ebx, esi
mov edi, edx
shl edi, 0x10
xor edi, dword [ebp - 0x9c]
and ebx, 0xff
mov esi, ecx
shl esi, 0x10
xor esi, dword [ebp - 0xac]
and edi, 0xff0000
or edi, ebx
mov ebx, dword [ebp - 0x98]
and esi, 0xff000000
or edi, esi
mov esi, dword [ebp - 0xa4]
shr ebx, 0x10
xor ebx, esi
shr eax, 8
xor eax, dword [ebp - 0xac]
and ebx, 0xff00
or edi, ebx
mov dword [ebp - 0x8c], edi
and eax, 0xff
shl ecx, 0x18
xor ecx, dword [ebp - 0x9c]
shr edx, 8
xor edx, esi
and ecx, 0xff000000
and edx, 0xff0000
or eax, edx
or eax, ecx
mov ecx, dword [ebp - 0x98]
shr ecx, 8
xor ecx, dword [ebp - 0xa0]
push 0x40
and ecx, 0xff00
or eax, ecx
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x94]
xor dword [ebp - 0x84], eax
xor dword [ebp - 0x54], eax
lea edx, [ebp - 0x94]
push edx
lea eax, [ebp - 0x5c]
mov ecx, 0xe
lea esi, [ebp - 0x54]
lea edi, [ebp - 0xf4]
push eax
rep movsd dword es:[edi], dword [esi]
call dword [0x52f128]
mov eax, dword [ebp - 0xf4]
mov edx, eax
mov ecx, 0xe
lea esi, [ebp - 0xf4]
lea edi, [ebp - 0x94]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x578558]
mov esi, eax
shr esi, 8
and esi, 0xff
mov esi, dword [esi*4 + 0x578d58]
mov ebx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x578958]
xor ecx, edx
xor ecx, esi
mov esi, dword [ebp - 0xf0]
mov edi, esi
and eax, 0xff
mov eax, dword [eax*4 + 0x579158]
xor ecx, eax
shr edi, 0x10
mov dword [ebp - 0xa8], ecx
mov ecx, esi
shr esi, 8
and esi, 0xff
mov esi, dword [esi*4 + 0x578d58]
xor ebx, esi
and edi, 0xff
mov edi, dword [edi*4 + 0x578958]
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x578558]
xor edi, ecx
xor edi, esi
mov esi, dword [ebp - 0xf0]
and esi, 0xff
mov esi, dword [esi*4 + 0x579158]
mov dword [ebp - 0x98], ebx
mov ebx, dword [ebp - 0xec]
xor edi, esi
xor eax, esi
mov esi, ebx
shr ebx, 0x10
shr esi, 0x18
mov esi, dword [esi*4 + 0x578558]
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578958]
add esp, 0xc
xor ecx, esi
mov dword [ebp - 0xb0], edi
xor esi, ebx
xor edx, ebx
mov ebx, dword [ebp - 0xec]
shr ebx, 8
and ebx, 0xff
xor esi, dword [ebx*4 + 0x578d58]
mov ebx, dword [ebp - 0xec]
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x579158]
xor esi, ebx
xor eax, ebx
mov ebx, dword [ebp - 0xe8]
mov dword [ebp - 0xa0], esi
mov esi, ebx
shr esi, 0x18
mov esi, dword [esi*4 + 0x578558]
shr ebx, 0x10
xor ecx, esi
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578958]
xor esi, ebx
xor edx, ebx
mov ebx, dword [ebp - 0xe8]
shr ebx, 8
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x578d58]
xor dword [ebp - 0x98], ebx
xor esi, ebx
mov ebx, dword [ebp - 0xe8]
and ebx, 0xff
xor esi, dword [ebx*4 + 0x579158]
mov ebx, eax
xor ebx, esi
mov dword [ebp - 0xa4], esi
and ebx, 0xff
mov esi, edx
xor esi, edi
mov edi, dword [ebp - 0xa8]
and esi, 0xff0000
or ebx, esi
mov esi, dword [ebp - 0x98]
xor esi, dword [ebp - 0xa0]
and esi, 0xff00
or ebx, esi
mov esi, ecx
xor esi, edi
and esi, 0xff000000
or ebx, esi
mov dword [ebp - 0x94], ebx
mov ebx, eax
shr ebx, 0x18
xor ebx, edi
mov edi, dword [ebp - 0x98]
shl edi, 8
xor edi, dword [ebp - 0xa4]
mov esi, edx
and edi, 0xff00
shl esi, 8
xor esi, dword [ebp - 0xa0]
and ebx, 0xff
and esi, 0xff0000
or esi, ebx
or esi, edi
mov edi, ecx
shl edi, 8
xor edi, dword [ebp - 0xb0]
and edi, 0xff000000
or esi, edi
mov edi, edx
shl edi, 0x10
xor edi, dword [ebp - 0xa4]
mov dword [ebp - 0x90], esi
and edi, 0xff0000
mov dword [ebp - 0x9c], edi
mov edi, eax
shr edi, 0x10
xor edi, dword [ebp - 0xb0]
and edi, 0xff
or dword [ebp - 0x9c], edi
mov edi, ecx
shl edi, 0x10
xor edi, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x98]
shr eax, 8
xor eax, dword [ebp - 0xa0]
shl ecx, 0x18
xor ecx, dword [ebp - 0xa4]
shr edx, 8
xor edx, dword [ebp - 0xa8]
and eax, 0xff
and ecx, 0xff000000
and edx, 0xff0000
or eax, edx
or eax, ecx
mov ecx, dword [ebp - 0x98]
and edi, 0xff000000
or dword [ebp - 0x9c], edi
mov edi, dword [ebp - 0x9c]
shr ebx, 0x10
xor ebx, dword [ebp - 0xa8]
shr ecx, 8
xor ecx, dword [ebp - 0xb0]
and ebx, 0xff00
and ecx, 0xff00
or edi, ebx
or eax, ecx
dec dword [ebp - 0xb4]
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], eax
jne 0x41c500
mov ecx, dword [ebp - 0x94]
xor dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x84]
xor edx, ecx
rol esi, 0x10
mov ebx, esi
mov ecx, esi
shl esi, 8
shr ebx, 8
shl ecx, 8
xor ebx, ecx
mov ecx, dword [ebp - 0xbc]
and ebx, 0xff00ff
xor ebx, esi
rol edi, 0x10
mov esi, edi
shr esi, 8
mov dword [ecx], ebx
mov ebx, edi
shl ebx, 8
xor esi, ebx
and esi, 0xff00ff
shl edi, 8
xor esi, edi
rol eax, 0x10
mov edi, eax
mov dword [ecx + 4], esi
mov esi, eax
shr esi, 8
shl eax, 8
shl edi, 8
xor esi, edi
and esi, 0xff00ff
xor esi, eax
rol edx, 0x10
mov eax, edx
shr edx, 8
mov dword [ecx + 8], esi
mov esi, eax
shl esi, 8
xor edx, esi
and edx, 0xff00ff
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 0x58]
mov dword [ecx + 0xc], edx
rol eax, 0x10
mov edx, eax
shr edx, 8
mov esi, eax
shl esi, 8
xor edx, esi
and edx, 0xff00ff
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 0x54]
mov dword [ecx + 0x10], edx
rol eax, 0x10
mov edx, eax
shr edx, 8
mov esi, eax
shl esi, 8
xor edx, esi
and edx, 0xff00ff
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 0x50]
mov dword [ecx + 0x14], edx
rol eax, 0x10
mov edx, eax
mov esi, eax
shr edx, 8
shl esi, 8
xor edx, esi
and edx, 0xff00ff
shl eax, 8
xor edx, eax
mov eax, dword [ebp - 0x4c]
rol eax, 0x10
mov dword [ecx + 0x18], edx
mov edx, eax
mov esi, eax
shr edx, 8
shl esi, 8
xor edx, esi
mov esi, dword [ebp - 0xb8]
shl eax, 8
and edx, 0xff00ff
xor edx, eax
xor eax, eax
mov dword [ecx + 0x1c], edx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], eax
push 0x20
mov dword [esi + 0x60], eax
lea eax, [esi + 0x64]
push 0x57849c
push eax
xor edi, edi
call fcn.0052acbc
mov ecx, dword [ebp - 8]
add esp, 0xc
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xa0], edi
mov dword [esi + 0xa4], edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0052abef
mov esp, ebp
pop ebp
ret