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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
movsx eax, word [0x43ac88]
push ebx
push esi
push edi
push eax
push 0x1445ffff
call fcn.0040af32
mov word [0x43ac82], ax
push 0x3d25ffff
movsx eax, byte [0x43ac7e]
push eax
call fcn.0040b0f0
push dword [0x43aca0]
mov dword [0x43acb4], eax
push 0xfa2bffff
call fcn.0040b037
add word [0x43ac88], ax
push dword [0x43acb0]
movsx eax, word [0x43ac82]
push eax
call fcn.0040b0f0
mov ebx, dword [sym.imp.USER32.dll_GetForegroundWindow]
add esp, 0x20
mov dword [0x43acac], eax
call ebx
push dword [0x43ac9c]
mov word [0x43ac8a], ax
movsx eax, word [0x43ac8c]
push eax
call fcn.0040af32
pop ecx
pop ecx
mov ecx, eax
xor eax, eax
mov dword [0x43aca0], ecx
mov byte [ebp + eax - 0x104], al
inc eax
cmp eax, 0x100
jb 0x42d96e
mov al, byte [0x43ac8c]
and byte [ebp - 1], 0
imul cl
add byte [0x43ac7b], al
and byte [ebp - 2], 0
movsx eax, word [0x43ac82]
imul eax, eax, 0x9153ffff
mov dword [0x43acb4], eax
movsx ax, byte [0x43ac80]
neg eax
mov word [0x43ac8e], ax
mov al, byte [0x43ac7d]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaA]
mov byte [0x43ac79], al
and byte [ebp - 3], 0
movsx eax, byte [0x43ac7b]
imul eax, eax, 0xf25fffff
push 0x2ad7ffff
mov dword [0x43acb0], eax
push dword [0x43aca8]
call fcn.0040b087
add dword [0x43aca8], eax
push 0xbe5fffff
push 0x3edfffff
call fcn.0040b087
add esp, 0x10
mov dword [0x43aca8], eax
xor edi, edi
movsx eax, byte [0x43ac7b]
push eax
push 0xe63dffff
call fcn.0040afcb
add byte [0x43ac7c], al
movsx eax, byte [0x43ac78]
push eax
push 0x9787ffff
call fcn.0040b002
mov dword [0x43aca0], eax
mov eax, edi
xor edx, edx
lea esi, [ebp + edi - 0x104]
div dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push 0xdd1bffff
push 0x583ffff
mov al, byte [edx + eax]
add al, byte [esi]
add byte [ebp - 3], al
call fcn.0040b002
push dword [0x43acac]
add word [0x43ac94], ax
push 0x9ffffff
call fcn.0040b037
add esp, 0x20
mov word [0x43ac8c], ax
call ebx
mov byte [0x43ac79], al
mov cl, byte [esi]
movzx eax, byte [ebp - 3]
mov dl, byte [ebp + eax - 0x104]
push 0x8b97ffff
lea eax, [ebp + eax - 0x104]
mov byte [esi], dl
mov byte [eax], cl
movsx eax, byte [0x43ac7a]
push eax
call fcn.0040b002
add word [0x43ac8c], ax
push 0x7583ffff
push 0xefe9ffff
call fcn.0040af94
add dword [0x43ac9c], eax
mov al, byte [0x43acbc]
or al, byte [0x43ac7d]
add esp, 0x10
inc edi
cmp edi, 0x100
mov byte [0x43ac7c], al
jb 0x42da0a
push dword [0x43aca8]
push 0x9199ffff
call fcn.0040b0f0
add byte [0x43ac7c], al
push 0x9989ffff
movsx eax, byte [0x43ac7b]
push eax
call fcn.0040b002
mov ecx, dword [ebp + 0x18]
add esp, 0x10
test ecx, ecx
mov dword [0x43acb0], eax
jbe 0x42dbe6
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
sub eax, ebx
mov dword [ebp + 0xc], ecx
mov dword [ebp + 8], eax
movsx eax, byte [0x43ac7e]
push eax
push 0x6c1ffff
call fcn.0040af32
add dword [0x43aca4], eax
mov al, byte [0x43ac92]
sub byte [0x43ac7b], al
inc byte [ebp - 1]
movzx eax, byte [ebp - 1]
pop ecx
lea esi, [ebp + eax - 0x104]
pop ecx
mov al, byte [esi]
add byte [ebp - 2], al
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
push dword [0x43aca8]
movzx eax, ax
push 0x7c9ffff
mov dword [0x43ac9c], eax
call fcn.0040b087
mov word [0x43ac8e], ax
pop ecx
movzx eax, byte [ebp - 2]
pop ecx
mov cl, byte [ebp + eax - 0x104]
lea edi, [ebp + eax - 0x104]
mov al, byte [esi]
mov byte [esi], cl
mov byte [edi], al
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add dword [0x43acbc], eax
mov al, byte [edi]
add al, byte [esi]
mov ecx, dword [ebp + 8]
movzx eax, al
mov al, byte [ebp + eax - 0x104]
xor al, byte [ecx + ebx]
mov byte [ebx], al
call dword [sym.imp.USER32.dll_GetActiveWindow]
add word [0x43ac8a], ax
inc ebx
dec dword [ebp + 0xc]
jne 0x42db37
push 0x21e1ffff
push 0xea19ffff
call fcn.0040af32
push 0x5c15ffff
push 0xa203ffff
mov byte [0x43ac7b], al
call fcn.0040afcb
push 0x129bffff
mov word [0x43ac90], ax
push dword [0x43acac]
call fcn.0040aeeb
add esp, 0x18
add dword [0x43aca4], eax
pop edi
pop esi
pop ebx
leave
ret