Function at 0x1000ebe5
Capabilities:
Encode data using xor
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa3c
cmp byte [ebp + 0x18], 0
mov dword [ebp - 0x1c], edx
mov byte [ebp - 0x10], cl
je 0x1000ec2a
test cl, cl
je 0x1000ec09
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
jmp 0x1000ee93
push 0
push 0x1e93
push 0x1312
push 0x1fcd
push 0x99e
call dword [sym.imp.USER32.dll_SetScrollRange]
jmp 0x1000ee93
cmp byte [ebp + 0x20], 0
push ebx
push esi
je 0x1000ec54
mov esi, dword [ebp + 0x1c]
xor ebx, ebx
mov dword [esi], ebx
jmp 0x1000ec4a
mov byte [ebp + 0x1b], bl
cmp byte [ebp + 0x1b], bl
je 0x1000ec48
call fcn.1000ebb8
dec dword [esi]
cmp dword [esi], 0xfffffffa
jl 0x1000ec3b
jmp 0x1000ee91
push edi
push 0
pop ebx
mov dword [ebp + 0x18], 0x1d61
cmp dword [ebp + 0x18], 0x58d
push 1
pop edi
jge 0x1000ee23
lea eax, [ebp - 0x14]
push eax
push 0x1006a9b8
call fcn.1004aa2b
pop ecx
pop ecx
mov dword [ebp + 0x18], edi
cmp dword [ebp - 0x14], edi
jl 0x1000ee23
lea eax, [ebp - 0xc]
push eax
push 0x1006a9b8
call fcn.1004aa2b
mov esi, dword [ebp - 0xc]
pop ecx
dec esi
pop ecx
mov dword [ebp - 0xc], esi
js 0x1000ecc3
lea edi, [ebp - 0x7b4]
lea edi, [edi + esi*4]
push edi
push 0x1006a9b8
call fcn.1004aa2b
pop ecx
sub edi, 4
dec esi
pop ecx
jns 0x1000ecad
xor edi, edi
inc edi
lea eax, [ebp - 4]
push eax
push 0x1006a9b8
call fcn.1004aa2b
mov esi, dword [ebp - 4]
pop ecx
dec esi
pop ecx
mov dword [ebp - 4], esi
js 0x1000ecfb
lea edi, [ebp - 0x52c]
lea edi, [edi + esi*4]
push edi
push 0x1006a9b8
call fcn.1004aa2b
pop ecx
sub edi, 4
dec esi
pop ecx
jns 0x1000ece5
xor edi, edi
inc edi
lea eax, [ebp - 8]
push eax
push 0x1006a9b8
call fcn.1004aa2b
mov esi, dword [ebp - 8]
pop ecx
dec esi
pop ecx
mov dword [ebp - 8], esi
js 0x1000ed33
lea edi, [ebp - 0xa3c]
lea edi, [edi + esi*4]
push edi
push 0x1006a9b8
call fcn.1004aa2b
pop ecx
sub edi, 4
dec esi
pop ecx
jns 0x1000ed1d
xor edi, edi
inc edi
push 0x288
lea eax, [ebp - 0x2a4]
push ebx
push eax
call fcn.100421f5
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov ecx, ebx
test eax, eax
js 0x1000ed86
mov edi, dword [ebp - 4]
mov edx, ebx
test edi, edi
js 0x1000ed7e
lea esi, [ebp - 0x2a4]
lea esi, [esi + ecx*4]
mov eax, dword [ebp + edx*4 - 0x52c]
and eax, dword [ebp + ecx*4 - 0x7b4]
xor dword [esi], eax
inc edx
lea esi, [esi + 4]
cmp edx, edi
jle 0x1000ed63
mov eax, dword [ebp - 0xc]
inc ecx
cmp ecx, eax
jle 0x1000ed54
xor edi, edi
inc edi
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 8]
add ecx, eax
cmp ecx, esi
jl 0x1000eddb
lea edx, [ebp - 0x2a4]
lea edx, [edx + ecx*4]
sub ecx, esi
inc ecx
cmp dword [edx], ebx
je 0x1000edc7
test esi, esi
js 0x1000edc7
lea edi, [ebp - 0xa3c]
mov dword [ebp - 0x18], edx
lea edi, [edi + esi*4]
lea ebx, [esi + 1]
mov esi, edx
mov eax, dword [edi]
lea edi, [edi - 4]
xor dword [esi], eax
lea esi, [esi - 4]
dec ebx
jne 0x1000edb7
mov esi, dword [ebp - 8]
sub edx, 4
dec ecx
jne 0x1000ed9e
xor edi, edi
inc edi
jmp 0x1000eddb
cmp dword [ebp + esi*4 - 0x2a4], ebx
jne 0x1000ede0
dec esi
cmp esi, edi
jg 0x1000edd2
lea eax, [esi + 1]
push eax
push 0x1006a9b8
call fcn.1004ad2c
test esi, esi
jmp 0x1000ee04
push dword [ebp + esi*4 - 0x2a4]
push 0x1006c1b8
call fcn.1004ad2c
dec esi
pop ecx
pop ecx
jns 0x1000edf2
push 0x1006c1bc
call fcn.1004ad2c
mov eax, dword [ebp + 0x18]
inc eax
pop ecx
mov dword [ebp + 0x18], eax
cmp eax, dword [ebp - 0x14]
jle 0x1000ec8b
mov eax, dword [ebp + 0x10]
xor ecx, ecx
mov esi, dword [ebp + 0x14]
mov eax, dword [eax]
test eax, eax
setne cl
imul eax, ecx, 0xb6a6
test eax, eax
je 0x1000ee40
cmp dword [esi], ebx
jne 0x1000ee42
mov edi, ebx
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, 0xffff
mov dword [eax], ecx
or eax, 0xffffffff
sub eax, edi
cmp eax, ecx
mov eax, dword [ebp + 0x10]
pop edi
setge dl
sub edx, dword [eax]
mov eax, dword [eax]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
neg edx
cmp edx, eax
mov eax, dword [esi]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
sete dl
xor ebx, ebx
mov eax, dword [eax]
cmp eax, edx
mov eax, dword [esi]
setle bl
xor ecx, ecx
cmp eax, ebx
mov eax, dword [ebp + 8]
setge cl
mov dword [eax], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret