Function at 0x418000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], 0x2bde2dc8
mov dword [esp + 0x14], 0xd73929bb
mov dword [esp + 0x18], 0xd346d535
mov dword [esp + 0x1c], 0xdf13d1f0
mov dword [esp + 0x20], 0xdb46dd44
mov dword [esp + 0x24], 0xc754d935
mov dword [esp + 0x28], 0xc32bc55b
mov dword [esp + 0x2c], 0xcf5cc153
mov dword [esp + 0x30], 0xcb35cdec
mov dword [esp + 0x34], 0xf76ac925
mov dword [esp + 0x38], 0xf31bf568
mov dword [esp + 0x3c], 0xff15f162
mov dword [esp + 0x40], 0xfb1efd63
lea eax, [esp + 0x44]
mov word [esp + 0x44], 0xf9f8
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
mov dword [esp + 0x84], 0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x4b
ja 0x418123
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x84]
movzx esi, byte [esp + edx + 0x10]
lea edx, [ecx + esi]
add edx, 0xa207037a
add ecx, 0xa207037a
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
add cl, 0xaa
mov edx, dword [esp + 0x84]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
cmp ecx, 0x4c
jb 0x4180d0
lea edi, [esp + 0x84]
lea edx, [esp + 0x10]
mov ecx, 0xd
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xb8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418160
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418180
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x4181a0
mov eax, 0xffffffff
jmp 0x4181a7
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.00437310
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 8], eax
test cx, cx
je 0x4181e1
add esi, 2
mov eax, dword [esp + 8]
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 0x4181d0
mov word [eax], 0
movzx ecx, word [esp + 0x84]
test cx, cx
je 0x418211
lea edx, [esp + 0x86]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418200
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x418241
add edi, 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 [edi]
add edi, 2
test cx, cx
jne 0x418230
mov word [eax], 0
mov dword [esp + 0x10], 0x3377316f
mov dword [esp + 0x14], 0x37a235bc
mov dword [esp + 0x18], 0x2bb4298d
mov dword [esp + 0x1c], 0x2fb72dbf
mov dword [esp + 0x20], 0x23bc21bf
mov dword [esp + 0x24], 0x277925b7
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0x1918
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov dword [esp + 0x35], 0
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0x68]
cmp ecx, 0x28
ja 0x418316
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x68]
movzx esi, byte [esp + edx + 0x10]
lea edi, [ecx - 0x72120a78]
lea edx, [ecx + esi]
add edx, 0x8dedf588
and edi, esi
add ecx, 0x88
and ecx, esi
add ecx, edi
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
mov edx, ecx
xor edx, 0x47
and ecx, 0x47
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x68]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
cmp ecx, 0x29
jb 0x4182c0
lea edi, [esp + 0x68]
lea edx, [esp + 0x10]
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x80]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebx]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418350
mov edi, dword [ebx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418370
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x418390
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x4183b4
mov eax, 0xffffffff
jmp 0x4183bc
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00437310
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x4183f1
add esi, 2
mov eax, dword [esp + 0xc]
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 0x4183e0
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [edi]
test cx, cx
je 0x418423
add edi, 2
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x418410
jmp 0x418427
mov esi, dword [esp + 8]
mov word [eax], 0
movzx ecx, word [esp + 0x68]
test cx, cx
je 0x418451
lea edx, [esp + 0x6a]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418440
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x418481
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 0x418470
mov word [eax], 0
mov word [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xa3a0a1fc
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1d
ja 0x41850f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x1b]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0x5e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1e
jb 0x4184e0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x1c]
push eax
push esi
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.0041aa60
add esp, 0x1c
mov ebx, eax
mov eax, dword [0x4438a0]
mov ecx, 0x4bc25941
xor ecx, dword [0x4438a8]
add eax, ecx
inc eax
jmp eax