Function at 0x459280
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
mov ebp, ecx
mov dword [esp + 0x10], ebp
cmp edi, 0x10
ja 0x45929b
mov edi, 0x10
jmp 0x4592b1
cmp edi, 0x20
jb 0x4592a7
mov edi, 0x20
jmp 0x4592b1
cmp edi, 0x18
je 0x4592b1
mov edi, 0x18
mov ecx, dword [esp + 0x18]
mov ebx, edi
push edi
shr ebx, 2
push ecx
lea eax, [ebx + 6]
lea esi, [ebp + 0x3c]
push esi
mov dword [ebp + 0x38], eax
call sub.MSVCR90.dll_memcpy
lea edx, [ebx*4]
sub edx, edi
push edx
lea eax, [esi + edi]
push 0
push eax
call sub.MSVCR90.dll_memset
lea eax, [edi + 3]
mov ecx, eax
and ecx, 3
sub eax, ecx
push eax
push esi
push esi
call fcn.0043c7f0
add esp, 0x24
cmp edi, 0x10
je 0x4595b2
cmp edi, 0x18
je 0x459493
cmp edi, 0x20
jne 0x4596bc
mov ecx, dword [esi + 0x1c]
mov eax, dword [0x7078f4]
mov edi, dword [0x7078fc]
mov edx, ecx
shr edx, 0x18
movzx eax, byte [eax + edx*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edi + edx*4]
mov edi, dword [0x7078f8]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edi + edx*4]
and edx, 0xff000000
xor eax, edx
mov edx, dword [0x7078f0]
movzx ecx, cl
mov ecx, dword [edx + ecx*4]
mov edx, dword [esi + 0xc]
and ecx, 0xff00
xor eax, ecx
xor eax, dword [esi]
mov ecx, dword [esi + 4]
xor eax, dword [0x48fff8]
mov edi, 4
xor ecx, eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 8]
xor eax, ecx
xor edx, eax
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], edx
nop
mov ecx, dword [esi + 0x2c]
mov ebx, dword [0x7078f0]
mov eax, ecx
shr eax, 0x10
movzx edx, al
mov eax, dword [0x7078fc]
mov eax, dword [eax + edx*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [ebx + edx*4]
mov ebx, dword [0x7078f8]
and edx, 0xff00
and eax, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x18
mov edx, dword [ebx + edx*4]
and edx, 0xff000000
xor eax, edx
mov edx, dword [0x7078f4]
movzx ecx, cl
movzx ecx, byte [edx + ecx*4]
mov edx, dword [esi + 0x1c]
xor eax, ecx
xor eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x30], eax
xor ecx, eax
mov eax, dword [esi + 0x18]
xor eax, ecx
xor edx, eax
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x3c]
mov edx, dword [0x7078f4]
mov ebx, dword [0x7078fc]
add esi, 0x20
mov eax, ecx
shr eax, 0x18
movzx eax, byte [edx + eax*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [ebx + edx*4]
mov ebx, dword [0x7078f8]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [ebx + edx*4]
and edx, 0xff000000
xor eax, edx
mov edx, dword [0x7078f0]
movzx ecx, cl
mov ecx, dword [edx + ecx*4]
and ecx, 0xff00
xor eax, ecx
xor eax, dword [edi + 0x48fff8]
add edi, 4
xor eax, dword [esi]
mov dword [esi + 0x20], eax
mov ecx, dword [esi + 4]
xor ecx, eax
mov dword [esi + 0x24], ecx
mov eax, dword [esi + 8]
xor eax, ecx
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xc]
xor edx, eax
mov dword [esi + 0x2c], edx
cmp edi, 0x1c
jne 0x459390
jmp 0x4596bc
mov ecx, dword [esi + 0x14]
mov edx, dword [0x7078f4]
mov edi, dword [0x7078fc]
mov eax, ecx
shr eax, 0x18
movzx eax, byte [edx + eax*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edi + edx*4]
mov edi, dword [0x7078f8]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edi + edx*4]
and edx, 0xff000000
xor eax, edx
mov edx, dword [0x7078f0]
movzx ecx, cl
mov ecx, dword [edx + ecx*4]
mov edx, dword [esi + 0xc]
and ecx, 0xff00
xor eax, ecx
xor eax, dword [esi]
mov ecx, dword [esi + 4]
xor eax, dword [0x48fff8]
mov edi, 4
xor ecx, eax
mov dword [esi + 0x18], eax
mov eax, dword [esi + 8]
xor eax, ecx
xor edx, eax
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov eax, dword [esi + 0x10]
xor eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x28], eax
xor ecx, eax
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x2c]
mov eax, dword [0x7078f4]
mov ebx, dword [0x7078fc]
add esi, 0x18
mov edx, ecx
shr edx, 0x18
movzx eax, byte [eax + edx*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [ebx + edx*4]
mov ebx, dword [0x7078f8]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [ebx + edx*4]
and edx, 0xff000000
xor eax, edx
mov edx, dword [0x7078f0]
movzx ecx, cl
mov ecx, dword [edx + ecx*4]
and ecx, 0xff00
xor eax, ecx
xor eax, dword [edi + 0x48fff8]
add edi, 4
xor eax, dword [esi]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 4]
xor ecx, eax
mov dword [esi + 0x1c], ecx
mov eax, dword [esi + 8]
xor eax, ecx
mov dword [esi + 0x20], eax
mov edx, dword [esi + 0xc]
xor edx, eax
mov dword [esi + 0x24], edx
cmp edi, 0x20
jne 0x459513
jmp 0x4596bc
mov ecx, dword [esi + 0xc]
mov edx, dword [0x7078f4]
mov edi, dword [0x7078fc]
mov eax, ecx
shr eax, 0x18
movzx eax, byte [edx + eax*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edi + edx*4]
mov edi, dword [0x7078f8]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edi + edx*4]
mov edi, dword [0x7078f0]
and edx, 0xff000000
xor eax, edx
movzx edx, cl
mov edx, dword [edi + edx*4]
and edx, 0xff00
xor eax, edx
xor eax, dword [esi]
mov edx, dword [esi + 4]
xor eax, dword [0x48fff8]
lea edi, [esi + 0x10]
xor edx, eax
mov dword [edi], eax
mov eax, dword [esi + 8]
xor eax, edx
mov dword [esi + 0x18], eax
xor eax, ecx
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], eax
mov esi, 4
mov eax, edi
mov edx, dword [eax + 0xc]
mov edi, dword [0x7078f4]
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [edi + ecx*4]
mov ebx, edx
shr ebx, 8
movzx edi, bl
mov ebx, dword [0x7078fc]
mov edi, dword [ebx + edi*4]
mov ebx, edx
and edi, 0xff0000
xor ecx, edi
shr ebx, 0x10
movzx edi, bl
mov ebx, dword [0x7078f8]
mov edi, dword [ebx + edi*4]
movzx edx, dl
and edi, 0xff000000
xor ecx, edi
mov edi, dword [0x7078f0]
mov edx, dword [edi + edx*4]
and edx, 0xff00
xor ecx, edx
xor ecx, dword [esi + 0x48fff8]
lea edi, [eax + 0x10]
xor ecx, dword [eax]
add esi, 4
mov dword [edi], ecx
mov edx, dword [eax + 4]
xor edx, ecx
mov dword [eax + 0x14], edx
mov ecx, dword [eax + 8]
xor ecx, edx
mov dword [eax + 0x18], ecx
mov edx, dword [eax + 0xc]
xor edx, ecx
mov dword [eax + 0x1c], edx
cmp esi, 0x28
jne 0x459631
cmp dword [ebp + 0x30], 1
jne 0x4598f3
mov esi, dword [ebp + 0x38]
add esi, esi
xor ebx, ebx
add esi, esi
lea eax, [ebp + 0x3c]
je 0x459720
lea edx, [eax + esi*4 + 8]
lea ecx, [eax + 8]
jmp 0x4596e0
mov ebp, dword [edx - 8]
mov edi, dword [ecx - 8]
mov dword [ecx - 8], ebp
mov ebp, dword [edx - 4]
mov dword [edx - 8], edi
mov edi, dword [ecx - 4]
mov dword [ecx - 4], ebp
mov ebp, dword [edx]
mov dword [edx - 4], edi
mov edi, dword [ecx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [ecx + 4], ebp
mov dword [edx + 4], edi
add ebx, 4
sub esi, 4
add ecx, 0x10
sub edx, 0x10
cmp ebx, esi
jb 0x4596e0
mov ebp, dword [esp + 0x10]
mov edi, 1
cmp dword [ebp + 0x38], edi
jbe 0x4598f3
mov edi, edi
mov ecx, dword [eax + 0x10]
mov esi, dword [0x7078f4]
mov ebp, dword [0x707908]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [esi + edx*4]
mov ebx, ecx
add eax, 0x10
and edx, 0xff
mov edx, dword [ebp + edx*4]
mov ebp, dword [0x707904]
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [esi + ebx*4]
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
and ecx, 0xff
and ebx, 0xff
xor edx, dword [ebp + ebx*4]
mov ebx, dword [0x707900]
xor edx, dword [ebx + ecx*4]
movzx ecx, byte [eax]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x70790c]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
mov ecx, dword [eax + 4]
mov dword [eax], edx
mov esi, dword [0x7078f4]
mov ebp, dword [0x707908]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [esi + edx*4]
mov ebx, ecx
shr ebx, 0x10
and edx, 0xff
mov edx, dword [ebp + edx*4]
mov ebp, dword [0x707904]
movzx ebx, bl
mov ebx, dword [esi + ebx*4]
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
and ebx, 0xff
xor edx, dword [ebp + ebx*4]
mov ebx, dword [0x707900]
and ecx, 0xff
xor edx, dword [ebx + ecx*4]
movzx ecx, byte [eax + 4]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x70790c]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
mov ecx, dword [eax + 8]
mov dword [eax + 4], edx
mov esi, dword [0x7078f4]
mov ebp, dword [0x707908]
mov edx, ecx
shr edx, 8
mov ebx, ecx
movzx edx, dl
mov edx, dword [esi + edx*4]
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [esi + ebx*4]
and edx, 0xff
mov edx, dword [ebp + edx*4]
mov ebp, dword [0x707904]
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
and ebx, 0xff
xor edx, dword [ebp + ebx*4]
mov ebx, dword [0x707900]
and ecx, 0xff
xor edx, dword [ebx + ecx*4]
movzx ecx, byte [eax + 8]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x70790c]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
mov ecx, dword [eax + 0xc]
mov dword [eax + 8], edx
mov esi, dword [0x7078f4]
mov ebp, dword [0x707908]
mov edx, ecx
shr edx, 8
mov ebx, ecx
movzx edx, dl
mov edx, dword [esi + edx*4]
shr ebx, 0x10
and edx, 0xff
mov edx, dword [ebp + edx*4]
mov ebp, dword [0x707904]
movzx ebx, bl
mov ebx, dword [esi + ebx*4]
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
and ebx, 0xff
xor edx, dword [ebp + ebx*4]
mov ebx, dword [0x707900]
and ecx, 0xff
xor edx, dword [ebx + ecx*4]
movzx ecx, byte [eax + 0xc]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x70790c]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
inc edi
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x10]
cmp edi, dword [edx + 0x38]
jb 0x459730
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc