Function at 0x418a60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x30
mov esi, esp
push eax
sub esp, 0x1c
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0x2c
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
push eax
sub esp, 0x3c
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x10], ecx
mov esp, ecx
push eax
sub esp, 0x2c
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x14], ecx
mov esp, ecx
push eax
sub esp, 0x2c
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x18], ecx
mov esp, ecx
push eax
sub esp, 0x2c
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x1c], ecx
mov esp, ecx
mov dword [eax], 0xdbb7d9b3
mov dword [eax + 4], 0xe7dae59d
mov dword [eax + 8], 0xe38ee1d6
mov dword [eax + 0xc], 0xefeeed8e
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x1b
ja 0x418b33
nop
nop
nop
nop
nop
mov edx, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ebx, byte [eax + ecx]
lea ecx, [edx + ebx]
add ecx, 0x7deb8d5c
add edx, 0x7deb8d5c
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x7c
mov edx, dword [esi + 8]
mov byte [eax + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x1c
jb 0x418b00
push eax
push dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push ebx
call fcn.00415680
add esp, 0xc
mov byte [esi + 0xf], al
mov dword [edi], 0xbb1fb913
mov dword [edi + 4], 0xbf28bd28
mov dword [edi + 8], 0xa34ea165
mov dword [edi + 0xc], 0xa706a506
mov word [edi + 0x10], 0xa9a6
mov dword [edi + 0x12], 0
mov dword [edi + 0x16], 0
mov dword [edi + 0x1a], 0
mov dword [edi + 0x1e], 0
mov dword [edi + 0x22], 0
mov dword [edi + 0x26], 0
mov dword [edi + 0x2a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x2d
ja 0x418bce
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
add al, 0xc7
xor al, byte [edi + ecx]
add al, 0x8f
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x2e
jb 0x418bb0
push edi
mov edi, dword [ebp + 0xc]
push edi
push ebx
call fcn.00415680
add esp, 0xc
mov byte [esi + 0xe], al
mov edx, dword [esi + 0x10]
mov dword [edx], 0x83318138
mov dword [edx + 4], 0x9f2b9d30
mov dword [edx + 8], 0x9b239926
mov dword [edx + 0xc], 0x97189517
mov dword [edx + 0x10], 0x93229127
mov dword [edx + 0x14], 0x6f9a6d19
mov dword [edx + 0x18], 0x6bdb69e3
mov dword [edx + 0x1c], 0x67df65de
mov dword [edx + 0x20], 0x63df61ea
mov word [edx + 0x24], 0x7d62
mov dword [edx + 0x26], 0
mov dword [edx + 0x2a], 0
mov dword [edx + 0x2e], 0
mov dword [edx + 0x32], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x35
ja 0x418c97
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
movzx edx, byte [edx + eax]
lea eax, [ecx + edx]
add eax, 0xeb
add ecx, 0xeb
and ecx, edx
mov edx, dword [esi + 0x10]
add ecx, ecx
sub eax, ecx
add al, 0x93
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x36
jb 0x418c60
push edx
push edi
push ebx
call fcn.00415680
add esp, 0xc
mov byte [esi + 0x10], al
mov edx, dword [esi + 0x14]
mov dword [edx], 0x3b101bb
mov dword [edx + 4], 0x1fa91db3
mov dword [edx + 8], 0x1ba719a5
mov dword [edx + 0xc], 0x17621597
mov dword [edx + 0x10], 0x13a3119b
mov dword [edx + 0x14], 0x6fd76da6
mov dword [edx + 0x18], 0x6bd769e2
mov word [edx + 0x1c], 0x656a
mov dword [edx + 0x1e], 0
mov dword [edx + 0x21], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x24
ja 0x418d37
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x14]
movzx edx, byte [edx + eax]
lea eax, [ecx + edx]
add eax, 0x13bab
add ecx, 0x13bab
and ecx, edx
mov edx, dword [esi + 0x14]
add ecx, ecx
sub eax, ecx
add al, 0x53
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x25
jb 0x418d00
push edx
push edi
push ebx
call fcn.00415680
add esp, 0xc
mov byte [esi + 0x14], al
mov edx, dword [esi + 0x18]
mov dword [edx], 0xfb69f99a
mov dword [edx + 4], 0xff67fd63
mov dword [edx + 8], 0xf365f160
mov dword [edx + 0xc], 0xf76ef52c
mov dword [edx + 0x10], 0xeb79e963
mov dword [edx + 0x14], 0xefeced74
mov dword [edx + 0x18], 0
mov dword [edx + 0x1c], 0
mov dword [edx + 0x20], 0
mov word [edx + 0x24], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x25
ja 0x418dd7
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x18]
movzx edx, byte [edx + eax]
lea eax, [ecx + edx]
add eax, 0xff
add ecx, 0xff
and ecx, edx
mov edx, dword [esi + 0x18]
add ecx, ecx
sub eax, ecx
add al, 7
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x26
jb 0x418da0
push edx
push edi
push ebx
call fcn.00415680
add esp, 0xc
mov ebx, dword [esi + 0x1c]
mov dword [ebx], 0x43b441b6
mov dword [ebx + 4], 0x5fa15da1
mov dword [ebx + 8], 0x5bd559a1
mov dword [ebx + 0xc], 0x57d9556c
mov dword [ebx + 0x10], 0x53a451a5
mov dword [ebx + 0x14], 0x6fe06da9
mov dword [ebx + 0x18], 0x6b686991
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x27], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x2a
ja 0x418e69
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0xb]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add cl, 0xbe
mov edx, dword [esi + 8]
mov byte [ebx + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x2b
jb 0x418e40
movzx ecx, byte [esi + 0xf]
movzx edx, byte [esi + 0xe]
mov edi, edx
xor edi, ecx
add edi, ecx
not edx
and edx, ecx
cmp edi, edx
mov ecx, ebx
setne bl
mov bh, byte [esi + 0x10]
or bh, byte [esi + 0x14]
or bh, al
push ecx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00415680
add esp, 0xc
or al, bh
or al, bl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret