Function at 0x418260
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
mov dword [esp + 0x10], 0x632e611c
mov dword [esp + 0x14], 0x6705650b
mov dword [esp + 0x18], 0x6b066909
mov dword [esp + 0x1c], 0x6f2b6d4c
mov dword [esp + 0x20], 0x93069108
mov dword [esp + 0x24], 0x97f895f1
mov dword [esp + 0x28], 0x9bf3990b
mov dword [esp + 0x2c], 0x9ff09df3
mov dword [esp + 0x30], 0x83f181a0
mov dword [esp + 0x34], 0x871285e1
mov dword [esp + 0x38], 0x8be3891c
mov dword [esp + 0x3c], 0x8fe98de2
mov dword [esp + 0x40], 0xb3ceb123
lea eax, [esp + 0x44]
mov word [esp + 0x44], 0xb5b4
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x3e
ja 0x418361
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx ebx, byte [esp + edx + 0x10]
lea edi, [ecx + 0x1e293870]
mov edx, edi
and edx, ebx
mov esi, edi
xor esi, ebx
or edi, ebx
xor edi, esi
add ecx, 0x70
and ecx, ebx
mov ebx, edi
and ebx, ecx
xor ecx, edi
sub edx, ebx
sub esi, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
add cl, 0xf0
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x3f
jb 0x418310
mov esi, dword [ebp + 0x10]
lea edi, [esp + 0x74]
lea edx, [esp + 0x10]
mov ecx, 0xd
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xa8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 4]
xor eax, eax
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x418390
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
and edx, edi
mov eax, edi
not eax
and eax, ecx
sub eax, edx
sar eax, 1
mov esi, dword [esi + 4]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx], 0
lea ecx, [ecx + 2]
jne 0x4183c0
lea edx, [esi + ecx]
add edx, 0xfffffffe
add ecx, esi
mov ebx, 1
sub ebx, ecx
and ebx, esi
mov ecx, esi
not ecx
and ecx, edx
sub ecx, ebx
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x4183f6
mov eax, 0xffffffff
jmp 0x4183fd
add eax, ecx
add eax, eax
add eax, 0x36
mov ebx, dword [ebp + 0xc]
push eax
call fcn.00408f00
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x418431
add edi, 2
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x418420
mov word [eax], 0
movzx ecx, word [esp + 0x74]
test cx, cx
je 0x418461
lea edx, [esp + 0x76]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418450
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x418491
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x418480
mov word [eax], 0
mov dword [esp + 0x10], 0xfb3ff9d7
mov dword [esp + 0x14], 0xff68fd72
mov dword [esp + 0x18], 0xf36ef159
mov dword [esp + 0x1c], 0xf76ff567
mov dword [esp + 0x20], 0xeb76e967
mov dword [esp + 0x24], 0xef3ded7f
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0xe1ee
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov byte [esp + 0x36], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x26
ja 0x418539
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0x7f]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0x82cb8d7f
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x58]
add cl, 0x87
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x27
jb 0x418500
lea edi, [esp + 0x58]
lea edx, [esp + 0x10]
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x70]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebx]
xor eax, eax
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x418560
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
and edx, edi
mov eax, edi
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 8], eax
mov esi, dword [ebx + 8]
xor ecx, ecx
nop
nop
nop
nop
cmp word [esi + ecx], 0
lea ecx, [ecx + 2]
jne 0x418590
lea edx, [esi + ecx]
add edx, 0xfffffffe
add ecx, esi
mov ebx, 1
sub ebx, ecx
and ebx, esi
mov ecx, esi
not ecx
and ecx, edx
sub ecx, ebx
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax]
xor edx, edx
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx], 0
lea edx, [edx + 2]
jne 0x4185c0
lea eax, [ebx + edx]
add eax, 0xfffffffe
mov dword [esp + 0x54], eax
add edx, ebx
mov eax, 1
sub eax, edx
mov edx, ebx
not edx
and edx, dword [esp + 0x54]
and eax, ebx
sub edx, eax
mov eax, dword [esp + 8]
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x418606
mov eax, 0xffffffff
jmp 0x41860e
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00408f00
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 8], eax
test cx, cx
je 0x418641
add edi, 2
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x418630
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x418671
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x418660
mov word [eax], 0
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x4186a1
lea edx, [esp + 0x5a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418690
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4186d1
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x4186c0
mov word [eax], 0
mov dword [esp + 0x10], 0x939091bc
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xb
ja 0x418759
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x10]
lea esi, [eax + 0xf013]
lea ecx, [eax + edx]
add ecx, 0xf013
and esi, edx
add eax, 0x13
and eax, edx
add eax, esi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
xor ecx, 0x7a
and eax, 0x7a
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xc
jb 0x418700
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x20]
push eax
mov esi, dword [esp + 0x20]
push esi
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.0041b040
add esp, 0x20
mov ebx, eax
jmp dword [0x4421bc]