Function at 0x418310
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], 0x4ba74dbb
mov dword [esp + 0x14], 0x576a49b1
mov dword [esp + 0x18], 0x53be5566
mov dword [esp + 0x1c], 0x5f5e51be
mov dword [esp + 0x20], 0
mov byte [esp + 0x24], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x14
ja 0x41839d
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0x3367500a
xor eax, 0x3367500a
lea edx, [eax + edx*2]
lea eax, [edx + ecx]
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xba
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x15
jb 0x418360
lea esi, [esp + 0x10]
push esi
push ebx
push edi
call fcn.00415160
add esp, 0xc
mov byte [esp + 0xf], al
mov dword [esp + 0x10], 0x4bef45e3
mov dword [esp + 0x14], 0x4fdc49dc
mov dword [esp + 0x18], 0xb31e4d11
mov dword [esp + 0x1c], 0xb716b116
mov word [esp + 0x20], 0xb5b6
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 0x418448
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x10]
lea eax, [ecx + edx]
add eax, 0x78658b75
add ecx, 0x78658b75
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xcd
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x25
jb 0x418410
push esi
push ebx
push edi
call fcn.00415160
add esp, 0xc
mov byte [esp + 0xe], al
mov dword [esp + 0x10], 0xc36dc166
mov dword [esp + 0x14], 0xc76bc576
mov dword [esp + 0x18], 0xcb63c960
mov dword [esp + 0x1c], 0xcf7acd7f
mov dword [esp + 0x20], 0xd360d17f
mov dword [esp + 0x24], 0xd7b8d56d
mov dword [esp + 0x28], 0xdb6bd96b
mov dword [esp + 0x2c], 0xdf77dd70
mov dword [esp + 0x30], 0x23872194
mov word [esp + 0x34], 0x2524
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x3d
ja 0x418528
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, 0x9fa26de0
add ecx, 0x9fa26de0
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xe0
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x3e
jb 0x4184f0
push esi
push ebx
push edi
call fcn.00415160
add esp, 0xc
mov bh, al
mov dword [esp + 0x10], 0xb325b52b
mov dword [esp + 0x14], 0xaf25b123
mov dword [esp + 0x18], 0xab37ad39
mov dword [esp + 0x1c], 0xa77aa927
mov dword [esp + 0x20], 0xa32ba52b
mov dword [esp + 0x24], 0x9f37a136
mov dword [esp + 0x28], 0x9b079d12
mov word [esp + 0x2c], 0x999a
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x27
ja 0x4185d8
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, 0x8965af49
add ecx, 0x8965af49
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, 0x28
jb 0x4185a0
push esi
push dword [ebp + 0xc]
push edi
call fcn.00415160
add esp, 0xc
mov byte [esp + 0xd], al
mov dword [esp + 0x10], 0xb790d78
mov dword [esp + 0x14], 0x77f0973
mov dword [esp + 0x18], 0x38d0576
mov dword [esp + 0x1c], 0x1f680132
mov dword [esp + 0x20], 0x1b691d93
mov dword [esp + 0x24], 0x1716196a
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x38], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x28
ja 0x418688
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x10]
lea eax, [ecx + edx]
add eax, 0xd6e0b502
add ecx, 0xd6e0b502
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xf2
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x29
jb 0x418650
push esi
push dword [ebp + 0xc]
push edi
call fcn.00415160
add esp, 0xc
mov bl, al
mov dword [esp + 0x10], 0xf39ecd5c
mov dword [esp + 0x14], 0xf791f191
mov dword [esp + 0x18], 0xfb6df591
mov dword [esp + 0x1c], 0xff69f9aa
mov dword [esp + 0x20], 0xe38efd6d
mov dword [esp + 0x24], 0xe772e189
mov dword [esp + 0x28], 0xebeae581
mov dword [esp + 0x2c], 0
mov dword [esp + 0x2f], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x22
ja 0x41872e
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + ecx + 0x10]
lea ecx, [eax - 0x6aa3c122]
mov edi, ecx
and edi, edx
xor ecx, edx
add eax, 0xde
and eax, edx
add eax, edi
sub ecx, eax
lea eax, [ecx + edi*2]
add al, 0xee
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x23
jb 0x4186f0
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 dword [ebp + 8]
call fcn.00415160
add esp, 0xc
or al, bl
or al, bh
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret