Function at 0x419f54
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x458
mov esi, esp
mov eax, dword [ebp + 0xc]
push eax
sub esp, 0x20
mov dword [esi + 0x20], esp
sub esp, 0x1c
mov dword [esi + 0x7c], esp
sub esp, 8
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x9c], esp
sub esp, 0xc
mov dword [esi + 0x10], esp
sub esp, 0x44
mov ecx, esp
mov dword [esi + 0xe0], ecx
mov dword [esi + 0xb0], ecx
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0xac], ecx
mov dword [esi + 0xd0], ecx
sub esp, 0x10
mov ecx, esp
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xd4], ecx
sub esp, 0x18
mov ecx, esp
mov dword [esi + 0xfc], ecx
mov dword [esi + 0x100], ecx
push eax
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x80], esp
sub esp, 8
mov dword [esi + 0xf4], esp
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0xe4], ecx
mov dword [esi + 0xcc], ecx
sub esp, 0x34
mov ecx, esp
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xf0], ecx
sub esp, 0x3c
mov ecx, esp
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xc4], ecx
sub esp, 0x44
mov ecx, esp
mov dword [esi + 0xe8], ecx
mov dword [esi + 0xec], ecx
sub esp, 0x10
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0x104], esp
push eax
mov dword [esi + 0x13c], esp
sub esp, 8
mov dword [esi + 0xc0], esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xf8], ecx
mov esp, ecx
push eax
push eax
mov ecx, esp
mov dword [esi + 0xb4], ecx
mov dword [esi + 0x138], ecx
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x8c], ecx
mov esp, ecx
push eax
sub esp, 8
mov ecx, esp
mov dword [esi + 0xa0], ecx
mov dword [esi + 0x10c], ecx
sub esp, 0xc
mov dword [esi + 0x130], esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x110], ecx
mov esp, ecx
push eax
sub esp, 8
mov ecx, esp
mov dword [esi + 0xc8], ecx
mov dword [esi + 0x90], ecx
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x108], ecx
mov dword [esi + 0x30], ecx
sub esp, 0xc
mov dword [esi + 0x88], esp
sub esp, 0x88
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xb8], ecx
mov esp, ecx
push eax
sub esp, 0x14
mov dword [esi + 0x134], esp
sub esp, 0x18
mov dword [esi + 0x24], esp
push eax
mov dword [esi + 0x114], esp
sub esp, 0xc
mov dword [esi + 0x148], esp
sub esp, 0x10
mov ebx, esp
sub esp, 0x10
mov dword [esi + 0x140], esp
sub esp, 0xc
mov dword [esi + 0x144], esp
mov eax, dword [eax + 4]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x41a110
add ecx, eax
add ecx, 0xfffffffe
mov edi, eax
not edi
and edi, ecx
add edi, edi
xor ecx, eax
sub edi, ecx
sar edi, 1
lea ecx, [esi + 0x44]
push ecx
push 0
push 0
push edi
push eax
push 0
call dword [0x4510e0]
mov dword [esi + 0x2d0], 0x733231d3
mov byte [esi + 0x2d4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x4c
xor dl, byte [esi + ecx + 0x2d0]
add dl, 0x84
mov byte [esi + ecx + 0x2d0], dl
inc ecx
cmp ecx, 5
jne case.default.0x41a189
xor ecx, ecx
cmp eax, dword [esi + 0x2d0]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44aa90]
mov dword [esi + 0x98], ebx
mov ebx, dword [esi + 0x44]
test ebx, ebx
jns 0x41a1a4
mov eax, 0xffffffff
jmp 0x41a1a7
lea eax, [ebx + ebx]
push eax
call fcn.004088e0
add esp, 4
mov ecx, eax
lea eax, [esi + 0x44]
push eax
push ebx
push ecx
push edi
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push 0
mov ebx, ecx
call dword [0x4510e0]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44aa98]
jmp dword [0x44aaa0]
push ebx
call fcn.004088f0
add esp, 4
jmp case.0x41a189.4
mov eax, dword [esi + 0x44]
mov ecx, eax
add ecx, 0xd
jns 0x41a1fa
mov eax, 0xffffffff
jmp 0x41a201
lea eax, [eax*2 + 0x1a]
push eax
call fcn.004088e0
add esp, 4
mov dword [esi], eax
mov dword [esi + 0x2d0], 0x37e239dc
mov dword [esi + 0x2d4], 0x33bd35d5
mov dword [esi + 0x2d8], 0xcfee31bc
mov dword [esi + 0x2dc], 0xcb37cd26
mov dword [esi + 0x2e0], 0xc749c946
mov dword [esi + 0x2e4], 0xc331c53d
mov dword [esi + 0x2e8], 0xdfdec132
mov word [esi + 0x2ec], 0
mov byte [esi + 0x2ee], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
xor edi, 0xa
mov edx, eax
and edx, 0x2a
sub edx, edi
xor dl, byte [esi + ecx + 0x2d0]
add dl, 0x32
mov byte [esi + ecx + 0x2d0], dl
inc ecx
add eax, 2
cmp ecx, 0x1f
jne 0x41a270
movzx ecx, word [ebx]
mov edi, dword [esi]
mov eax, edi
test cx, cx
je 0x41a2c1
lea edx, [ebx + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a2b0
mov word [eax], 0
movzx ecx, word [esi + 0x2d0]
test cx, cx
mov dword [esi + 0x40], ebx
je 0x41a2f1
lea edx, [esi + 0x2d2]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a2e0
mov word [eax], 0
lea eax, [esi + 0x150]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00443c00
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44aaa8]
xor eax, eax
jmp 0x41db04
mov ecx, dword [case.0x41a189.0]
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret