Function at 0x419150
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp + 0x10], 0x83e78d13
mov dword [esp + 0x14], 0x87d28109
mov dword [esp + 0x18], 0xbbde85d6
mov dword [esp + 0x1c], 0xbfbeb9de
mov dword [esp + 0x20], 0
mov word [esp + 0x24], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x15
ja 0x4191df
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x16]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0x7c
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x16
jb 0x4191b0
lea esi, [esp + 0x10]
push esi
push ebx
push edi
call fcn.00415aa0
add esp, 0xc
mov byte [esp + 0xf], al
mov dword [esp + 0x10], 0xdb47d97b
mov dword [esp + 0x14], 0xd75ad546
mov dword [esp + 0x18], 0xd304d119
mov dword [esp + 0x1c], 0xcf6ccd50
mov word [esp + 0x20], 0xc9c8
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov dword [esp + 0x35], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x28
ja 0x419298
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x10]
lea eax, [ecx + edx]
add eax, 0xa247c4a4
add ecx, 0xa247c4a4
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x84
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x29
jb 0x419260
push esi
push ebx
push edi
call fcn.00415aa0
add esp, 0xc
mov byte [esp + 0xe], al
mov dword [esp + 0x10], 0xb325b52c
mov dword [esp + 0x14], 0xaf23b13c
mov dword [esp + 0x18], 0xab3bad36
mov dword [esp + 0x1c], 0xa724a927
mov dword [esp + 0x20], 0xa32aa537
mov dword [esp + 0x24], 0x9f72a125
mov dword [esp + 0x28], 0x9b139d13
mov dword [esp + 0x2c], 0x970f990e
mov dword [esp + 0x30], 0x930f951a
mov word [esp + 0x34], 0x9192
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x32
ja 0x419368
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x10]
lea eax, [ecx + edx]
add eax, 0x5c86f849
add ecx, 0x5c86f849
and ecx, edx
add ecx, ecx
sub eax, ecx
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x33
jb 0x419330
push esi
push ebx
push edi
call fcn.00415aa0
add esp, 0xc
mov bh, al
mov dword [esp + 0x10], 0xc36dc163
mov dword [esp + 0x14], 0xc76dc56b
mov dword [esp + 0x18], 0xcb6fc961
mov dword [esp + 0x1c], 0xcf20cd7f
mov dword [esp + 0x20], 0xd363d163
mov dword [esp + 0x24], 0xd77fd578
mov dword [esp + 0x28], 0xdb7fd96c
mov word [esp + 0x2c], 0xdddc
mov dword [esp + 0x32], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x25
ja 0x41942c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edi, byte [esp + eax + 0x10]
lea eax, [ecx + edi]
add eax, 0xe39e01a0
add ecx, 0xe39e01a0
mov edx, edi
not edx
or edx, ecx
add edx, edi
and ecx, edi
add ecx, edx
inc ecx
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
add cl, 0xa0
mov eax, dword [esp + 8]
mov byte [esp + eax + 0x10], cl
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x26
jb 0x4193e0
push esi
push dword [ebp + 0xc]
mov edi, dword [ebp + 8]
push edi
call fcn.00415aa0
add esp, 0xc
mov byte [esp + 0xd], al
mov dword [esp + 0x10], 0x9b0d990c
mov dword [esp + 0x14], 0x872f852b
mov dword [esp + 0x18], 0x83118116
mov dword [esp + 0x1c], 0x8f248d5a
mov dword [esp + 0x20], 0x8b1d891b
mov dword [esp + 0x24], 0x777675e2
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x23
ja 0x4194c5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
add al, 0x6c
xor al, byte [esp + ecx + 0x10]
add al, 0xc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x24
jb 0x4194a0
push esi
push dword [ebp + 0xc]
push edi
call fcn.00415aa0
add esp, 0xc
mov bl, al
mov dword [esp + 0x10], 0xbb14b926
mov dword [esp + 0x14], 0xbf19bd19
mov dword [esp + 0x18], 0xa335a119
mov dword [esp + 0x1c], 0xa731a54c
mov dword [esp + 0x20], 0xab04a935
mov dword [esp + 0x24], 0xaf38ad01
mov dword [esp + 0x28], 0x93909109
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov word [esp + 0x38], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x29
ja 0x419565
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
add al, 0x47
xor al, byte [esp + ecx + 0x10]
add al, 0xf
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2a
jb 0x419540
movzx eax, byte [esp + 0xf]
or al, byte [esp + 0xe]
or bh, byte [esp + 0xd]
or bh, al
push esi
push dword [ebp + 0xc]
push edi
call fcn.00415aa0
add esp, 0xc
or al, bl
or al, bh
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret