Function at 0x419498
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x469487
call fcn.004685c0
sub esp, 0x180
push ebx
xor ebx, ebx
push esi
push edi
mov edi, ebx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov edx, ebx
mov dword [ebp - 4], ebx
movaps xmm0, xmmword [0x47f760]
movups xmmword [ebp - 0x9f], xmm0
mov dword [ebp - 0x8f], 0xc0c0cddb
mov word [ebp - 0x8b], 0xd8c9
mov byte [ebp - 0x89], bl
mov cl, byte [ebp - 0x9f]
not cl
xor byte [ebp + edx - 0x9e], cl
inc edx
cmp edx, 0x15
jb 0x4194e1
cmp dword [0x48aba8], 0x10
mov eax, 0x48ab94
mov byte [ebp - 0x89], bl
cmovae eax, dword [0x48ab94]
push eax
call fcn.0044759e
pop ecx
lea edx, [ebp - 0x9e]
mov ecx, eax
call fcn.004354d9
push eax
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], 0xf
mov byte [ebp - 0xe0], bl
call fcn.00413d68
mov byte [ebp - 0x38], bl
lea edx, [ebp - 0xe0]
push dword [ebp - 0x38]
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.004157c7
pop ecx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 2
call fcn.0040cd0e
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x15], al
mov byte [ebp - 4], 1
call fcn.00413b3d
cmp byte [ebp - 0x15], 0
je 0x419c7d
mov byte [ebp - 0x38], bl
lea edx, [ebp - 0xe0]
push dword [ebp - 0x38]
lea ecx, [ebp - 0x50]
call fcn.004157c7
pop ecx
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040c930
lea ecx, [ebp - 0x50]
call fcn.00413b3d
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0040d946
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb0]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0xc4]
call fcn.0040d946
mov ecx, dword [ebp - 0xc0]
xorps xmm0, xmm0
movlpd qword [ebp - 0xbc], xmm0
mov edx, ebx
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xb8], ebx
test ecx, ecx
je 0x419613
call fcn.0040b03f
mov edx, ebx
mov eax, dword [ebp - 0xb4]
cmp eax, edx
je 0x41988d
lea esi, [eax + 0x20]
mov byte [ebp - 4], 8
mov ecx, esi
mov dword [ebp - 0x38], esi
call fcn.00416034
test al, al
je 0x419842
mov cl, 0x52
mov dword [ebp - 0x2c], 0xc1ccfa52
mov dword [ebp - 0x28], 0xded9c8c1
mov edx, ebx
mov byte [ebp - 0x24], bl
not cl
xor byte [ebp + edx - 0x2b], cl
inc edx
cmp edx, 7
jae 0x419660
mov cl, byte [ebp - 0x2c]
jmp 0x41964f
mov byte [ebp - 0x24], bl
call fcn.00435972
lea edx, [ebp - 0x2b]
mov ecx, eax
call fcn.004354d9
push eax
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], bl
call fcn.00413d68
lea ecx, [ebp - 0x88]
call fcn.0040d215
lea ecx, [ebp - 0x88]
call fcn.00413d07
movaps xmm0, xmmword [0x47f1c0]
mov edx, ebx
movups xmmword [ebp - 0x80], xmm0
mov cl, byte [ebp - 0x80]
not cl
xor byte [ebp + edx - 0x7f], cl
inc edx
cmp edx, 0xe
jb 0x4196b1
mov byte [ebp - 0x71], bl
call fcn.00435972
lea edx, [ebp - 0x7f]
mov ecx, eax
call fcn.004354d9
push eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], bl
call fcn.00413d68
lea ecx, [ebp - 0x50]
call fcn.0040d215
lea ecx, [ebp - 0x50]
call fcn.00413d07
movaps xmm0, xmmword [0x47fce0]
mov edx, ebx
movups xmmword [ebp - 0x6f], xmm0
mov dword [ebp - 0x5f], 0xd8d3c4d9
mov dword [ebp - 0x5b], 0xcb92cfc9
mov dword [ebp - 0x57], 0xd9d0d0dd
mov word [ebp - 0x53], 0xc8
mov cl, byte [ebp - 0x6f]
not cl
xor byte [ebp + edx - 0x6e], cl
inc edx
cmp edx, 0x1c
jb 0x419720
mov byte [ebp - 0x52], bl
call fcn.00435972
lea edx, [ebp - 0x6e]
mov ecx, eax
call fcn.004354d9
push eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], bl
call fcn.00413d68
lea ecx, [ebp - 0x50]
call fcn.0040d215
lea ecx, [ebp - 0x50]
call fcn.00413d07
lea eax, [ebp - 0xf8]
mov ecx, esi
push eax
call fcn.0040bc87
push ecx
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 9
push ecx
mov ecx, eax
call fcn.004143b3
or edi, 0x40
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 0xa
mov edx, ebx
movaps xmm0, xmmword [0x47f9d0]
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0x919a8d90
mov dword [ebp - 0x5c], 0x82db8680
mov dword [ebp - 0x58], 0x90999994
mov word [ebp - 0x54], 0xa981
mov byte [ebp - 0x52], bl
mov cl, byte [ebp - 0x70]
not cl
xor byte [ebp + edx - 0x6f], cl
inc edx
cmp edx, 0x1d
jb 0x4197bd
mov byte [ebp - 0x52], bl
call fcn.00435972
lea edx, [ebp - 0x6f]
mov ecx, eax
call fcn.004354d9
lea ecx, [ebp - 0x88]
mov edx, eax
push ecx
lea ecx, [ebp - 0x110]
call fcn.0041c8db
pop ecx
mov esi, eax
push ecx
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0xb
call fcn.004143b3
or edi, 0x200
lea ecx, [ebp - 0x50]
mov edx, esi
mov dword [ebp - 0x1c], edi
call fcn.00416050
lea ecx, [ebp - 0x50]
call fcn.00413d07
lea ecx, [ebp - 0x110]
call fcn.00413d07
lea ecx, [ebp - 0x88]
call fcn.00413d07
lea ecx, [ebp - 0xf8]
call fcn.00413b3d
mov dword [ebp - 4], 7
jmp 0x419874
lea ecx, [ebp - 0x34]
call fcn.0040c97a
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0xbc]
jmp 0x419619
test esi, esi
je 0x419898
mov ecx, esi
call fcn.0040b03f
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
je 0x4198ab
call fcn.0040b03f
mov cl, 0x10
mov dword [ebp - 0x2c], 0x97aab310
mov dword [ebp - 0x28], 0x9c9a8b80
mov edx, ebx
mov byte [ebp - 0x24], bl
not cl
xor byte [ebp + edx - 0x2b], cl
inc edx
cmp edx, 7
jae 0x4198d1
mov cl, byte [ebp - 0x2c]
jmp 0x4198c0
cmp dword [0x48aba8], 0x10
mov eax, 0x48ab94
mov byte [ebp - 0x24], bl
cmovae eax, dword [0x48ab94]
push eax
call fcn.0044759e
pop ecx
lea edx, [ebp - 0x2b]
mov ecx, eax
call fcn.004354d9
push eax
lea ecx, [ebp - 0xe0]
call fcn.00413d68
mov byte [ebp - 0x38], bl
lea edx, [ebp - 0xe0]
push dword [ebp - 0x38]
lea ecx, [ebp - 0x50]
dec ebp
mov al, 0xe8
scasd eax, dword es:[edi]
mov esi, 0x8d59ffff
inc ebp
mov al, 0xc6
inc ebp
cld
or eax, 0x3c8d8d50
invalid
invalid
invalid
call fcn.0040c930
lea ecx, [ebp - 0x50]
call fcn.00413b3d
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x34]
call fcn.0040d946
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], esi
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040d946
mov ecx, dword [ebp - 0x28]
xorps xmm0, xmm0
movlpd qword [ebp - 0xb4], xmm0
mov edx, ebx
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], ebx
test ecx, ecx
je 0x41998b
call fcn.0040b03f
mov edx, ebx
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x34]
cmp eax, edx
je 0x419c63
lea esi, [eax + 0x20]
mov byte [ebp - 4], 0x12
mov ecx, esi
mov dword [ebp - 0xb8], esi
call fcn.00416034
test al, al
je 0x419a38
mov cl, 0x55
mov dword [ebp - 0x33], 0xd9c08455
mov word [ebp - 0x2f], 0xc4c5
mov edx, ebx
mov byte [ebp - 0x2d], bl
not cl
xor byte [ebp + edx - 0x32], cl
inc edx
cmp edx, 5
jae 0x4199db
mov cl, byte [ebp - 0x33]
jmp 0x4199ca
mov byte [ebp - 0x38], bl
lea eax, [ebp - 0x32]
push dword [ebp - 0x38]
lea edx, [ebp - 0xc8]
mov byte [ebp - 0x2d], bl
lea ecx, [ebp - 0x50]
mov dword [ebp - 0xc8], eax
call fcn.004157f9
pop ecx
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x13
or edi, 1
mov ecx, esi
push eax
mov dword [ebp - 0x1c], edi
call fcn.00415f62
push dword [ebp - 0x40]
or edi, 2
lea ecx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 8
mov dword [ebp - 0x1c], edi
cmovae ecx, dword [ebp - 0x50]
push ecx
mov ecx, eax
call fcn.0040bace
mov byte [ebp - 0x15], 1
test eax, eax
je 0x419a3b
mov byte [ebp - 0x15], bl
mov eax, dword [ebp - 0x1c]
test al, 2
je 0x419a56
and eax, 0xfffffffd
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x1c], eax
call fcn.00413b3d
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], 0x12
test al, 1
je 0x419a6f
and eax, 0xfffffffe
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x1c], eax
call fcn.00413b3d
cmp byte [ebp - 0x15], 0
je 0x419c0c
mov cl, 0x7c
mov dword [ebp - 0x79], 0xefe2d47c
mov dword [ebp - 0x75], 0xf0f7e6ef
mov edx, ebx
mov byte [ebp - 0x71], bl
not cl
xor byte [ebp + edx - 0x78], cl
inc edx
cmp edx, 7
jae 0x419a9f
mov cl, byte [ebp - 0x79]
jmp 0x419a8e
mov byte [ebp - 0x71], bl
call fcn.00435972
lea edx, [ebp - 0x78]
mov ecx, eax
call fcn.004354d9
push 0xf
pop edi
push eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edi
mov byte [ebp - 0x50], bl
call fcn.00413d68
lea ecx, [ebp - 0x50]
call fcn.0040d215
lea ecx, [ebp - 0x50]
call fcn.00413d07
movaps xmm0, xmmword [0x47f220]
mov edx, ebx
movups xmmword [ebp - 0x98], xmm0
mov cl, byte [ebp - 0x98]
not cl
xor byte [ebp + edx - 0x97], cl
inc edx
cmp edx, 0xe
jb 0x419ae6
mov byte [ebp - 0x89], bl
call fcn.00435972
lea edx, [ebp - 0x97]
mov ecx, eax
call fcn.004354d9
push eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edi
mov byte [ebp - 0x50], bl
call fcn.00413d68
lea ecx, [ebp - 0x50]
call fcn.0040d215
lea ecx, [ebp - 0x50]
call fcn.00413d07
lea eax, [ebp - 0x6c]
mov ecx, esi
push eax
call fcn.0040bc87
push ecx
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x14
push ecx
mov ecx, eax
call fcn.004143b3
mov edi, dword [ebp - 0x1c]
or edi, 0x10000
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 0x15
mov edx, ebx
movaps xmm0, xmmword [0x47fc90]
movups xmmword [ebp - 0x99], xmm0
mov byte [ebp - 0x89], bl
mov cl, byte [ebp - 0x99]
not cl
xor byte [ebp + edx - 0x98], cl
inc edx
cmp edx, 0xf
jb 0x419b79
mov byte [ebp - 0x89], bl
call fcn.00435972
lea edx, [ebp - 0x98]
mov ecx, eax
call fcn.004354d9
lea ecx, [ebp - 0x110]
mov edx, eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.0041c8db
pop ecx
mov esi, eax
push ecx
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0xb8]
push eax
call fcn.004143b3
or edi, 0x80000
lea ecx, [ebp - 0x50]
mov edx, esi
mov dword [ebp - 0x1c], edi
call fcn.00416050
lea ecx, [ebp - 0x50]
call fcn.00413d07
lea ecx, [ebp - 0xf8]
call fcn.00413d07
lea ecx, [ebp - 0x110]
call fcn.00413d07
lea ecx, [ebp - 0x6c]
call fcn.00413b3d
jmp 0x419c0f
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0x11
jmp 0x419c41
lea ecx, [ebp - 0xa8]
call fcn.0040c97a
mov esi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xb4]
jmp 0x419992
test esi, esi
je 0x419c6e
mov ecx, esi
call fcn.0040b03f
mov ecx, dword [ebp - 0xc0]
test ecx, ecx
je 0x419c7d
call fcn.0040b03f
lea ecx, [ebp - 0xe0]
call fcn.00413d07
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret