Function at 0x409620
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x9c
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x98], eax
cmp byte [0x7ffe02ec], 0
push esi
mov esi, dword [ebp + 8]
jne 0x4098c8
mov ecx, 0x40d060
call fcn.00406e80
test al, al
je 0x4098df
mov edx, 0xd8
mov ecx, 0x40b2c8
call fcn.004086d0
test eax, eax
jne 0x4098df
lea edx, [eax + 0x38]
mov ecx, 0x40b290
call fcn.004086d0
test eax, eax
jne 0x4098df
mov eax, dword [0x40d4e4]
lea ecx, [esp + 0x6c]
add eax, 0xffffffef
push ecx
xor eax, 0x44c12fbd
push 0x408a70
call eax
test eax, eax
jne 0x4096b0
cmp dword [esp + 0x6c], eax
jne 0x4098df
call fcn.00408db0
test eax, eax
jne 0x4098df
call fcn.00409220
test eax, eax
jne 0x4098df
mov dword [esp + 0x54], eax
xorps xmm0, xmm0
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
mov eax, dword [0x40d4b0]
add eax, 0xfffffffc
movlpd qword [esp + 0x48], xmm0
push 0x7f00
xor eax, 0x44c12fb0
mov dword [esp + 0x40], 0x30
push 0
mov dword [esp + 0x48], 3
mov dword [esp + 0x4c], 0x409900
mov dword [esp + 0x58], esi
call eax
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x5c], 5
mov dword [esp + 0x10], 0x802053b
mov dword [esp + 0x14], 0x2f1b03
mov dword [esp + 0x18], 0x5d1f1f0d
mov byte [esp + 0x1c], 0x6c
nop dword [eax]
xor byte [esp + eax + 0x10], 0x6c
inc eax
cmp eax, 0xd
jb 0x409740
lea eax, [esp + 0x10]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x3c]
push eax
mov eax, dword [0x40d4b4]
add eax, 0xfffffffb
xor eax, 0x44c12fb1
call eax
mov ecx, dword [0x40d4b8]
mov eax, 0x10
movaps xmm0, xmmword [0x40bc70]
add ecx, 0xfffffffa
xorps xmm0, xmmword [0x40bad0]
xor ecx, 0x44c12fb2
mov dword [esp + 0x30], 0x3c4c0809
mov dword [esp + 0x34], 0x1e0b031e
mov word [esp + 0x38], 0x10d
mov byte [esp + 0x3a], 0x6c
movups xmmword [esp + 0x20], xmm0
nop word [eax + eax]
xor byte [esp + eax + 0x20], 0x6c
inc eax
cmp eax, 0x1b
jb 0x4097b0
mov dword [esp + 0x10], 0x802053b
xor eax, eax
mov dword [esp + 0x14], 0x2f1b03
mov dword [esp + 0x18], 0x5d1f1f0d
mov byte [esp + 0x1c], 0x6c
nop word [eax + eax]
xor byte [esp + eax + 0x10], 0x6c
inc eax
cmp eax, 0xd
jb 0x4097e0
push 0
push esi
push 0
push 0
push 0x190
push 0x1f4
push 0x12c
push 0x12c
push 0xcf0000
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x38]
push eax
push 0
call ecx
push dword [ebp + 0x14]
push eax
mov eax, dword [0x40d4bc]
add eax, 0xfffffff9
xor eax, 0x44c12fb3
call eax
xorps xmm0, xmm0
mov dword [esp + 0x88], 0
movaps xmmword [esp + 0x70], xmm0
movq qword [esp + 0x80], xmm0
nop dword [eax + eax]
mov eax, dword [0x40d4c0]
lea ecx, [esp + 0x70]
push 1
push 0
push 0
add eax, 0xfffffff8
push 0
xor eax, 0x44c12fb4
push ecx
call eax
test eax, eax
je 0x4098b8
lea eax, [esp + 0x70]
push eax
mov eax, dword [0x40d4c4]
add eax, 0xfffffff7
xor eax, 0x44c12fb5
call eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [0x40d4c8]
add eax, 0xfffffff6
xor eax, 0x44c12fb6
call eax
mov eax, dword [0x40d4c0]
lea ecx, [esp + 0x70]
push 1
push 0
push 0
add eax, 0xfffffff8
push 0
xor eax, 0x44c12fb4
push ecx
call eax
test eax, eax
jne 0x409870
cmp dword [esp + 0x74], 0x12
je 0x4098c8
call fcn.00408470
test al, al
je 0x409850
xor eax, eax
pop esi
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.00409937
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [esp + 0x9c]
mov eax, 1
pop esi
xor ecx, esp
call fcn.00409937
mov esp, ebp
pop ebp
ret 0x10