Function at 0x417760
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x10], 0xc367c16b
mov dword [esp + 0x14], 0xc7b2c57d
mov dword [esp + 0x18], 0xcb6ec9a6
mov dword [esp + 0x1c], 0xcfcecd6e
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov word [esp + 0x28], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x19
ja 0x417802
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + ecx + 0x10]
lea ecx, [eax + edx]
add ecx, 0xc2205660
add eax, 0xc2205660
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
add al, 0x60
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x1a
jb 0x4177c0
lea eax, [esp + 0x10]
push eax
push edi
push esi
call fcn.004148b0
add esp, 0xc
mov byte [esp + 0xf], al
mov dword [esp + 0x10], 0x9be799fb
mov dword [esp + 0x14], 0x971a95e6
mov dword [esp + 0x18], 0x93a491d9
mov dword [esp + 0x1c], 0xafccadd0
mov word [esp + 0x20], 0xa9a8
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x31], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x24
ja 0x4178c2
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 + ecx]
add edx, 0x57fc4c14
add eax, 0x57fc4c14
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
add al, 0x74
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x25
jb 0x417880
lea eax, [esp + 0x10]
push eax
push edi
push esi
call fcn.004148b0
add esp, 0xc
mov byte [esp + 0xe], al
mov dword [esp + 0x10], 0xc375c56c
mov dword [esp + 0x14], 0xcf73c17c
mov dword [esp + 0x18], 0xcb7bcd66
mov dword [esp + 0x1c], 0xd774c977
mov dword [esp + 0x20], 0xd36ad567
mov dword [esp + 0x24], 0xdfa2d155
mov dword [esp + 0x28], 0xdb63dd63
mov dword [esp + 0x2c], 0x276fd96e
mov dword [esp + 0x30], 0x238f259a
mov word [esp + 0x34], 0x2122
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x41], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x34
ja 0x4179a2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + ecx + 0x10]
lea ecx, [eax + edx]
add ecx, 0x50b840e1
add eax, 0x50b840e1
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
add al, 0xd9
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x35
jb 0x417960
lea eax, [esp + 0x10]
push eax
push edi
push esi
call fcn.004148b0
add esp, 0xc
mov bh, al
mov dword [esp + 0x10], 0x5bed59fb
mov dword [esp + 0x14], 0x57ed55e3
mov dword [esp + 0x18], 0x53ef51e9
mov dword [esp + 0x1c], 0x2fd82d9f
mov dword [esp + 0x20], 0x2b9b299b
mov dword [esp + 0x24], 0x279f2590
mov dword [esp + 0x28], 0x239f21ac
mov word [esp + 0x2c], 0x3d3c
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov byte [esp + 0x3a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x2a
ja 0x417a45
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
add al, 0xb4
xor al, byte [esp + ecx + 0x10]
add al, 0x14
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2b
jb 0x417a20
lea eax, [esp + 0x10]
push eax
push edi
push esi
call fcn.004148b0
add esp, 0xc
mov byte [esp + 0xd], al
mov dword [esp + 0x10], 0xeba5d5aa
mov dword [esp + 0x14], 0xef97e993
mov dword [esp + 0x18], 0xe399ed9c
mov dword [esp + 0x1c], 0xe79ee1d0
mov dword [esp + 0x20], 0xfb95e593
mov dword [esp + 0x24], 0xfff8f988
mov dword [esp + 0x28], 0
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 0x417b01
mov edx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edi, byte [esp + eax + 0x10]
lea eax, [edx + 0x5d]
mov ecx, 0xa2
sub ecx, edx
sub ecx, edi
add edx, edi
add edx, 0x5d
and eax, edi
add eax, eax
and ecx, eax
not eax
and eax, edx
sub eax, ecx
add al, 0x75
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2a
jb 0x417ac0
lea eax, [esp + 0x10]
push eax
mov edi, dword [ebp + 0xc]
push edi
mov esi, dword [ebp + 8]
push esi
call fcn.004148b0
add esp, 0xc
mov bl, al
mov dword [esp + 0x10], 0x3b943986
mov dword [esp + 0x14], 0x3f993d99
mov dword [esp + 0x18], 0x3b50199
mov dword [esp + 0x1c], 0x7b105ec
mov dword [esp + 0x20], 0xba409b5
mov dword [esp + 0x24], 0xfb80da1
mov dword [esp + 0x28], 0x131011a9
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov word [esp + 0x34], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x25
ja 0x417bc7
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, 0x47b2157
add ecx, 0x47b2157
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ecx, eax
or ecx, 0x9e
and eax, 0x9e
add 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, 0x26
jb 0x417b80
movzx eax, byte [esp + 0xf]
or al, byte [esp + 0xe]
or bh, byte [esp + 0xd]
or bh, al
lea eax, [esp + 0x10]
push eax
push edi
push esi
call fcn.004148b0
add esp, 0xc
or al, bl
or al, bh
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret