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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
movsx eax, byte [0x438c1d]
push ebx
push esi
push edi
push eax
push 0x1d7fffff
call fcn.0040aa4f
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
pop ecx
pop ecx
mov word [0x438c2c], ax
call esi
add byte [0x438c21], al
call esi
push dword [0x438c48]
movzx eax, ax
push dword [0x438c40]
mov dword [0x438c38], eax
call fcn.0040ab0e
add byte [0x438c19], al
movsx eax, byte [0x438c18]
push eax
movsx eax, word [0x438c28]
push eax
call fcn.0040aa4f
mov dword [0x438c5c], eax
add esp, 0x10
movsx ax, byte [0x438c21]
imul ax, word [0x438c22]
add word [0x438c28], ax
xor ebx, ebx
xor eax, eax
mov edi, pe_nt_image_headers32
mov byte [ebp + eax - 0x104], al
inc eax
cmp eax, edi
jb 0x42be7e
push dword [0x438c54]
mov byte [0x438c20], 1
push 0x3a5fffff
call fcn.0040aac5
add byte [0x438c1b], al
cmp dword [0x438c50], ebx
pop ecx
mov byte [ebp - 1], bl
pop ecx
mov byte [ebp - 3], bl
je 0x42bec9
cmp byte [0x438c21], bl
mov dword [0x438c50], 1
jne 0x42becf
mov dword [0x438c50], ebx
mov byte [ebp - 2], bl
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [0x438c20], al
xor esi, esi
jmp 0x42bee3
xor ebx, ebx
push 0xcfbfffff
push 0xf3fdffff
call fcn.0040aac5
add byte [0x438c19], al
mov al, byte [0x438c4c]
sub al, byte [0x438c26]
xor edx, edx
pop ecx
add byte [0x438c19], al
pop ecx
movsx eax, word [0x438c2c]
or eax, 0x9dedffff
lea ecx, [ebp + esi - 0x104]
add dword [0x438c3c], eax
mov eax, esi
div dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov al, byte [edx + eax]
mov dl, byte [ecx]
add al, byte [ecx]
mov byte [0x438c1b], bl
add byte [ebp - 2], al
movzx eax, byte [ebp - 2]
mov bl, byte [ebp + eax - 0x104]
lea eax, [ebp + eax - 0x104]
mov byte [ecx], bl
mov byte [eax], dl
inc byte [0x438c18]
inc esi
cmp esi, edi
jb 0x42bee1
movsx eax, byte [0x438c18]
push eax
push dword [0x438c54]
call fcn.0040a9a5
add dword [0x438c3c], eax
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0x18]
mov word [0x438c28], ax
test ecx, ecx
mov dword [0x438c50], 0xc8bdfffe
jbe 0x42c056
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov bl, byte [ebp - 3]
sub eax, edi
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
dec word [0x438c2a]
inc dword [0x438c5c]
inc byte [ebp - 1]
push 0x81a1ffff
movzx eax, byte [ebp - 1]
add bl, byte [ebp + eax - 0x104]
lea esi, [ebp + eax - 0x104]
movsx eax, byte [0x438c21]
imul eax, dword [0x438c58]
mov dword [0x438c3c], eax
movsx eax, word [0x438c32]
push eax
call fcn.0040aac5
mov word [0x438c2c], ax
pop ecx
movzx eax, bl
mov dl, byte [ebp + eax - 0x104]
pop ecx
mov cl, byte [esi]
lea eax, [ebp + eax - 0x104]
mov byte [esi], dl
mov byte [eax], cl
mov al, byte [eax]
movsx ecx, byte [0x438c1e]
add al, byte [esi]
or ecx, dword [0x438c4c]
inc word [0x438c2e]
add dword [0x438c38], ecx
mov ecx, dword [ebp + 8]
movzx eax, al
mov al, byte [ebp + eax - 0x104]
xor al, byte [ecx + edi]
mov byte [edi], al
add dword [0x438c4c], 0x3eedffff
inc edi
dec dword [ebp + 0xc]
jne 0x42bfac
mov eax, dword [0x438c4c]
push 0x1a0fffff
or eax, 0x3eddffff
push 0x4833ffff
add dword [0x438c38], eax
call fcn.0040a9a5
pop ecx
mov word [0x438c34], ax
pop ecx
pop edi
pop esi
pop ebx
leave
ret