Function at 0x418a0e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
and dword [ebp - 0x10], 0
mov dword [ebp - 0xc], edx
mov edx, dword [ebp + 0x14]
push ebx
mov ebx, ecx
mov eax, dword [edx]
test eax, eax
je 0x418ce3
push edi
push 0x77
dec eax
mov dword [ebp - 0x14], 0x83
pop ecx
mov dword [edx], eax
mov dword [ebp - 0x1c], 0x81
mov dword [ebp - 0x20], 0x82
mov dword [ebp - 0x18], 0x85
push esi
mov edi, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x76
je 0x418cea
cmp ax, cx
je 0x418ccf
movzx esi, ax
mov eax, 0x83
cmp esi, eax
jg 0x418b59
add eax, 0xfffffffe
cmp esi, eax
jge 0x418c75
test esi, esi
je 0x45588b
cmp esi, 0x78
je 0x418c3d
cmp esi, 0x7b
je 0x45588b
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp + 8]
mov ecx, ebx
push dword [eax + 4]
call fcn.00418d01
mov ebx, eax
mov dword [ebp - 8], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x418cc8
mov edx, dword [edi]
cmp edx, 0x1d
je 0x4552df
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x1d
je 0x418bca
cmp edx, 0x6e
jne 0x45559a
mov eax, dword [edi + 8]
lea esi, [ebp - 0x40]
mov edx, dword [ebp + 0x10]
add eax, eax
xor edi, edi
sub edx, eax
mov eax, dword [esi]
cmp eax, 0xa
jbe 0x4557df
cmp eax, 0xb
je 0x455817
cmp eax, 0x6d
jbe 0x418cc8
cmp eax, 0x6f
ja 0x455828
lea eax, [ebp - 0x40]
mov ecx, ebx
cmp esi, eax
jne 0x418cf2
mov eax, dword [esi + 8]
add eax, eax
sub ecx, eax
lea esi, [edx + 0x20]
test edi, edi
jne 0x418cfa
mov al, byte [ecx]
and al, byte [edx]
inc ecx
inc edx
test al, al
jne 0x418cc8
cmp edx, esi
jb 0x418b33
cmp dword [ebp - 0x3c], 0
jne 0x418c38
xor eax, eax
inc eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x85
cmp esi, eax
je 0x418c75
lea eax, [esi - 0x92]
cmp eax, 1
ja 0x418a9c
lea ecx, [ebx + 2]
movzx eax, word [ecx]
cmp ax, word [ebp - 0x18]
jne 0x4552bc
push 0x77
pop edx
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
cmp word [ecx], dx
je 0x418b88
mov edx, dword [ebp + 0x14]
add ecx, 4
push edx
push dword [ebp + 0x10]
mov edx, dword [ebp - 0xc]
push edi
push dword [ebp + 8]
call fcn.00418a0e
add esp, 0x10
test eax, eax
je 0x418cc8
movzx eax, byte [esi + 0x4a5750]
lea ebx, [ebx + eax*2]
mov edx, dword [ebp + 0x14]
push 0x77
pop ecx
jmp 0x418a52
lea eax, [ebp - 0x38]
mov ebx, dword [edi]
lea esi, [edi + 8]
mov ecx, dword [eax]
mov dword [ebp - 4], eax
cmp ebx, 0x6e
ja 0x455565
jne 0x4552ea
cmp ecx, 0xff
ja 0x418c1e
mov esi, dword [ebp - 8]
lea eax, [ebp - 0x40]
cmp edi, eax
je 0x418bfb
mov esi, dword [ebp + 0x10]
mov eax, dword [edi + 8]
mov edx, ecx
add eax, eax
shr edx, 3
sub edx, eax
and ecx, 7
xor eax, eax
inc eax
shl eax, cl
test byte [edx + esi], al
jne 0x418cc8
lea esi, [edi + 8]
mov eax, dword [ebp - 4]
add eax, 4
mov dword [ebp - 4], eax
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x418bd7
cmp dword [ebp - 0x3c], 0
je 0x418b4f
mov ebx, dword [ebp - 8]
mov edi, dword [ebp + 0xc]
jmp 0x418bbf
cmp dword [edi + 4], 0
je 0x418cc8
movzx ecx, word [ebx + 2]
mov eax, ebx
add ecx, ecx
sub eax, ecx
movzx eax, word [eax]
cmp eax, 0x7d
jl 0x418c66
mov ecx, 0x82
cmp eax, ecx
jle 0x45587e
movzx eax, byte [esi + 0x4a5750]
lea ebx, [ebx + eax*2]
jmp 0x418bc2
movzx eax, word [ebx + 2]
lea edi, [ebx + eax*2]
movzx eax, byte [esi + 0x4a5750]
lea ebx, [ebx + eax*2]
cmp word [edi], cx
jne 0x418cbc
mov esi, dword [ebp + 0xc]
push edx
push dword [ebp + 0x10]
mov edx, dword [ebp - 0xc]
mov ecx, ebx
push esi
push dword [ebp + 8]
call fcn.00418a0e
add esp, 0x10
test eax, eax
je 0x418cc8
movzx eax, word [edi + 2]
lea ebx, [edi + 4]
mov edx, dword [ebp + 0x14]
push 0x77
pop ecx
lea edi, [edi + eax*2]
cmp word [edi], cx
je 0x418c8e
mov dword [ebp - 0x10], 1
jmp 0x418a4f
xor eax, eax
jmp 0x418b52
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
cmp word [ebx], cx
je 0x418ccf
movzx eax, word [ebx]
jmp 0x418a67
xor eax, eax
jmp 0x418b54
add ebx, 8
jmp 0x418a52
mov ecx, dword [ebp + 0x10]
jmp 0x418b21
sub ecx, edx
jmp 0x455864
lea esi, [esi + eax*2]
jmp 0x3778a5ce
push edx
test ecx, ecx
pop eax
push edx
test ecx, ecx
dec ebp
push edx
test ecx, ecx
dec ebp
push edx
test ecx, ecx
pushal
push edx
test ecx, ecx
cmp ax, word [ebp - 0x14]
je 0x52638bbb
into
cmp eax, dword [ebp - 0x1c]
je 0x52638bbb
into
cmp eax, dword [ebp - 0x20]
jne 0x2ab98cfe
jmp 0x2ab98bbb
cld
and byte [ebx - 0x16fbacad], al
lea esi, [edi]
cld
and byte [ebx - 0x79f0f2ad], al
xlatb
cld
and byte [eax + 0x51bc870f], bh
inc eax
sar dword [ebp - 8], 0xca
push esi
push ebx
add al, 0xe9
sbb bl, byte [eax - 4]
invalid
add byte [ebx + 0x6fe883c3], al
je 0x4555bc
dec eax
jne 0x45d08cfe
sub byte [edx - 0x77], dh
lea eax, [ebp - 0x40]
je 0x4555c4
push 0x3c
pop eax
push ebx
add al, 0xe9
cmp eax, 0x4402d800
inc esp
div byte [edi - 0x38]
mov eax, dword [ebp + 0xf]
xchg dword [esi], esi
aaa
aaa
cld
and byte [ebx], dh
invalid
sal byte [ebp + 5], cl
xor eax, eax
inc eax
jmp 0x4557e9
cmp edx, eax
je 0x4557f7
xor esi, esi
jae 0x455819
push esi
call 0x8e418cfe
xor ebx, dword [ebp - 1]
add bh, bh
and eax, dword [ebp + 0x3381840f]
adc eax, dword [ebp - 0x17]
in al, dx
xor ecx, dword [ebx - 0x37bad7bb]
mov edx, ebx
mov esi, edi
jmp 0x45d08b1e
sub eax, 6
push es
je 0x455839
dec eax
je 0x45583c
dec eax
je 0x45582b
dec eax
jne 0x50e18cfe
push eax
jmp 0x45582e
add esi, dword [ebx]
inc dword [edi + 0x33]
fisttp dword [eax]
add cl, byte [eax + 8]
jmp 0xc9788b5e
xor edi, edi
inc edi
xor ebx, ebx
or byte [edx], al
dec eax
or cl, ch
and eax, 0x51c93333
push ecx
cmova esi, dword [ebx]
fisttp dword [eax]
add cl, byte [eax + 8]
add ecx, 0x40
jmp 0xc9788b5e
xor ebx, ebx
or byte [edx], al
dec eax
or byte [ebx + 0x14e940c1], al
xor esi, dword [ebx]
leave
push ecx
cmova esi, dword [ebx]
fisttp dword [eax]
add cl, byte [eax + 8]
add ecx, 0x85840f09
jmp 0x8e418b5e
dec eax
or byte [ecx - 0x7bf0f63f], al
test ecx, ebp
add byte [ebx], dh
cld
lea esi, [eax + edi*8]
jo 0x455871
test dword [edi + 0x55890c34], edx
loopne 0x45582a
xor al, 0xc
mov dword [ebp - 0x20], edx
ror byte [ebx + 0x74f03bcb], 3
mov ecx, ebx
cmp esi, eax
je 0x455873
verr word [esi - 0x7d]
add byte [esi - 0x7d], ah
add dword [esi + 8], 3
inc esi
or byte [ebx], al
shr byte [ebx], 0xc8
out 0xa, al
or esi, eax
test al, 4
jne 0x89518cfe
test al, 2
jne 0x455892
cmp dword [ebp - 0x3c], edi
jge 0x455851
jmp 0x8dc58b7f
xor al, 0
add bl, ch
les esi, [edx]
mov ebx, dword [ebp - 4]
cld
mov dh, 4
adc edi, esi
shl byte [edx], 1
add al, byte [edx - 0x75]
pop ebp
clc
xor edx, dword [ebx + 0x34]
or al, 0x89
cmp edx, esi
jb 0x45589a
jmp 0x42478b7b