Function at 0x403ba8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x479060]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, 0x479f50
mov dword [0x479f60], ebx
mov ecx, edi
mov dword [0x479f64], ebx
mov dword [0x479f68], ebx
mov byte [0x479f6e], bl
call fcn.00402023
push 3
call fcn.0040af00
pop ecx
call fcn.0040ae20
mov dword [0x479fac], eax
test eax, eax
jne 0x403c07
mov dword [0x479fac], ebx
xor al, al
jmp 0x403f16
push esi
push 0x2712
push eax
call fcn.0040aed0
add esp, 0xc
push 0xf
pop eax
cmp byte [0x479eaf], bl
jne 0x403cb4
mov dword [ebp - 0x48], ebx
lea edx, [ebp - 0x48]
mov dword [ebp - 0x44], 1
mov esi, ebx
mov dword [ebp - 0x40], 2
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x38], 4
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x30], 6
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x24], 9
mov dword [ebp - 0x20], 0xa
mov dword [ebp - 0x1c], 0xb
mov dword [ebp - 0x18], 0xc
mov dword [ebp - 0x14], 0xd
mov dword [ebp - 0x10], 0xe
test eax, eax
je 0x403cad
push eax
pop edi
mov ecx, dword [edx]
lea edx, [edx + 4]
lea eax, [ecx - 0x65]
xor byte [ecx + 0x479ea0], al
inc esi
cmp esi, edi
jne 0x403c95
mov edi, 0x479f50
mov byte [0x479eaf], 1
push 0x479ea0
push 0x2722
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
xor esi, esi
inc esi
push esi
push 0x50
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push 0x403b6c
push 0x4e2b
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push 3
push 0x54
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push 0x1e
push 0x4e
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push 0xb4
push 0xd
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push esi
push 0x2b
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push esi
push 0x34
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push ebx
push 0x40
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push ebx
push 0x51
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push esi
push 0x4a
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push ebx
push 0x2a
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push ebx
push 0x29
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push esi
push 0x71
push dword [0x479fac]
call fcn.0040aed0
movaps xmm0, xmmword [0x4763f0]
add esp, 0xc
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x54], bl
mov dword [ebp - 0x4c], ebx
push 0x10
pop eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], 2
mov dword [ebp - 0x40], 3
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x3c], 4
mov esi, ebx
mov dword [ebp - 0x38], 5
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x2c], 8
mov dword [ebp - 0x28], 9
mov dword [ebp - 0x24], 0xa
mov dword [ebp - 0x20], 0xb
mov dword [ebp - 0x1c], 0xc
mov dword [ebp - 0x18], 0xd
mov dword [ebp - 0x14], 0xe
mov dword [ebp - 0x10], 0xf
test eax, eax
je 0x403e50
mov ecx, dword [edx]
lea edx, [edx + 4]
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x64], al
inc esi
cmp esi, 0x10
jne 0x403e3e
lea eax, [ebp - 0x64]
mov byte [ebp - 0x54], 1
push eax
push 0x27e3
push dword [0x479fac]
call fcn.0040aed0
add esp, 0xc
push dword [0x479fac]
call fcn.0040aec0
pop ecx
test eax, eax
je 0x403eab
mov ecx, edi
mov dword [0x479f60], ebx
mov dword [0x479f64], ebx
mov dword [0x479f68], ebx
mov byte [0x479f6e], bl
call fcn.00402023
push dword [0x479fac]
call fcn.0040ade0
pop ecx
jmp 0x403bfa
lea eax, [ebp - 0x68]
mov dword [ebp - 0x68], ebx
push eax
push 0x200002
push dword [0x479fac]
call fcn.0040ae00
add esp, 0xc
push dword [0x479fac]
call fcn.0040ade0
cmp dword [ebp - 0x68], 0xc8
pop ecx
mov dword [0x479fac], ebx
je 0x403f0d
cmp dword [ebp - 0x68], 0x130
je 0x403f0d
mov ecx, edi
mov dword [0x479f60], ebx
mov dword [0x479f64], ebx
mov dword [0x479f68], ebx
mov byte [0x479f6e], bl
call fcn.00402023
jmp 0x403c00
cmp dword [0x479f64], ebx
setg al
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004465ce
mov esp, ebp
pop ebp
ret 4