Function at 0x414780
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4a84
call fcn.0045cb50
mov eax, dword [0x4ae084]
xor eax, esp
mov dword [esp + 0x4a80], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
lea edi, [ebx + 0xa3eb8]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x13], 0
call fcn.0044e810
push eax
call dword [0x489118]
call fcn.0044e810
mov esi, eax
call fcn.00414690
push 0x4818
lea eax, [esp + 0x274]
push 0
lea esi, [ebx + 0xa3f48]
mov ecx, 0x93
lea edi, [esp + 0x28]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.00457350
add esp, 0xc
mov dword [esp + 0x270], 0x4818
xor edi, edi
lea esi, [ebx + 0x36840]
call fcn.0044f9d0
mov byte [esp + edi + 0x274], al
inc edi
add esi, 0xc
cmp edi, 0x1f40
jl 0x414806
xor edi, edi
lea esi, [ebx + 0x4df40]
call fcn.0044f9d0
mov byte [esp + edi + 0x21b4], al
inc edi
add esi, 0xc
cmp edi, 0xc8
jl 0x414826
xor edi, edi
lea esi, [ebx + 0x4e918]
call fcn.0044f9d0
mov word [esp + edi*2 + 0x2286], ax
inc edi
add esi, 0xc
cmp edi, 0x1388
jl 0x414846
xor edi, edi
lea esi, [ebx + 0x5d558]
call fcn.0044f9d0
mov dword [esp + edi*4 + 0x4a38], eax
inc edi
add esi, 0xc
cmp edi, 0x14
jl 0x414867
xor edi, edi
lea esi, [ebx + 0x5d378]
call fcn.0044f9d0
mov dword [esp + edi*4 + 0x4998], eax
inc edi
add esi, 0xc
cmp edi, 0x28
jl 0x414884
mov esi, dword [0x48939c]
call esi
mov ecx, eax
sub ecx, dword [ebx + 0xa4194]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
add dword [esp + 0x260], edx
mov dword [esp + 0x20], 0x24c
call esi
call fcn.0044fd30
call fcn.0044fd10
movzx ecx, ax
shl ecx, 0x10
call fcn.0044fd10
movzx eax, ax
or eax, ecx
push eax
mov dword [esp + 0x1c], eax
call fcn.00464180
add esp, 4
push 0x4a64
call fcn.004543c0
add esp, 4
mov ebx, eax
push 0x4818
lea edx, [esp + 0x274]
push edx
lea eax, [ebx + 0x24c]
mov ecx, 0x93
lea esi, [esp + 0x28]
mov edi, ebx
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.0045cf20
mov eax, dword [esp + 0x24]
add esp, 0xc
call fcn.0044fd30
mov ecx, ebx
mov edx, 0x2532
call fcn.0044fd10
movzx eax, ax
xor word [ecx], ax
add ecx, 2
dec edx
jne 0x414933
push edx
push 0x80
push 2
push edx
push 1
push 0x40000000
push str.system.dat
call dword [0x48908c]
mov esi, eax
cmp esi, 0xffffffff
je 0x4149c0
mov edi, dword [0x489138]
push 0
lea ecx, [esp + 0x18]
push ecx
push 0x4a64
push ebx
push esi
call edi
test eax, eax
je 0x4149b9
cmp dword [esp + 0x14], 0x4a64
jne 0x4149b9
push 0
lea edx, [esp + 0x18]
push edx
push 4
lea eax, [esp + 0x24]
push eax
push esi
call edi
test eax, eax
je 0x4149b9
cmp dword [esp + 0x14], 4
jne 0x4149b9
push esi
call dword [0x4890c0]
mov byte [esp + 0x13], 1
call fcn.00464180
jmp 0x4149c0
push esi
call dword [0x4890c0]
push ebx
call fcn.0045510c
mov esi, dword [esp + 0x20]
add esp, 4
lea edi, [esi + 0xa3ea0]
call fcn.0044e810
push eax
call dword [0x489118]
mov bl, byte [esp + 0x13]
test bl, bl
jne 0x414a28
mov edx, dword [esi + 0x21c]
mov eax, dword [edx + 0x14]
lea ecx, [esi + 0x21c]
call eax
push 0x10010
push 0x49d880
push 0x49c460
test eax, eax
jne 0x414a14
push eax
call dword [0x48935c]
jmp 0x414a28
mov edx, dword [esi + 0x21c]
mov eax, dword [edx + 0xb8]
lea ecx, [esi + 0x21c]
call eax
mov ecx, dword [esp + 0x4a8c]
pop edi
pop esi
mov al, bl
pop ebx
xor ecx, esp
call fcn.004543d6
mov esp, ebp
pop ebp
ret 4