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

Disassembly:
mov eax, 0x1005d1bc
call fcn.1005c4f8
sub esp, 0xc4
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x34], ecx
je 0x1000da03
cmp byte [ebp + 0x14], 0
je 0x1000d96f
mov byte [ebp + 0x13], 0
cmp byte [ebp + 0x13], 0
je 0x1000d96a
mov cl, 1
call fcn.1000d7b8
jmp 0x1000df52
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
je 0x1000d96a
mov dword [ebp + 0x10], 0x559e
xor ebx, ebx
cmp dword [ebp + 0x10], 0x56eb
jle 0x1000d9c1
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov eax, ebx
mov ecx, 0x10078fb8
and eax, edi
xor eax, esi
cdq
push edx
push eax
call fcn.10001d2f
inc ebx
cmp ebx, 0x232c
jl 0x1000d990
inc edi
push 0
pop ebx
cmp edi, 0x5199
jl 0x1000d98d
inc esi
cmp esi, 0x33d6
jl 0x1000d98b
push 0x1274
call dword [sym.imp.USER32.dll_BeginDeferWindowPos]
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x10], 0x5447
jge 0x1000d96a
mov edx, str.sjml_wjxprxrtl_gew_kygue_lmaypchq_won_suvovjsc_jwce_airs_teyfz
mov ecx, 0x10078fb8
call fcn.10003c4d
jmp 0x1000d96a
cmp byte [ebp + 0xc], 0
je 0x1000df45
lea eax, [ebp - 0x34]
mov dword [ebp - 0x88], 7
mov dword [ebp - 0x44], eax
xor ebx, ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 0x8c], ebx
mov word [ebp - 0x9c], ax
mov dword [ebp - 4], 2
mov dword [ebp - 0x18], 0x6cab
cmp dword [ebp - 0x18], 0x6f7e
jle 0x1000dad1
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], ebx
mov eax, ebx
mov dword [ebp - 0x1c], 0x5053
mov dword [ebp + 0x10], eax
mov esi, eax
mov dword [ebp - 0x2c], ebx
and esi, edi
mov edi, ebx
mov eax, esi
lea ecx, [ebp - 0xd0]
xor eax, edi
cdq
push edx
push eax
call fcn.10001a85
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000da88
mov eax, dword [eax]
push eax
call fcn.10045794
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xd0]
call fcn.1000224a
inc edi
cmp edi, 0x62e5
jl 0x1000da6c
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x30]
add eax, esi
dec dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
mov dword [ebp + 0x10], eax
jne 0x1000da63
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x2309
jl 0x1000da57
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x7505
jl 0x1000da54
push 2
lea ecx, [ebp - 0x6c]
call fcn.10001eb9
cmp dword [ebp - 0x18], 0x6b08
jge 0x1000daef
push str.syizbpuo_nzgqc_mpfymlwp_hkglwy_yrzx_iomorr_paps_arore_puurchihh_olp_yfouqkfpu_vwgqqkobv_kkshgzpg_mrvixpsz
call fcn.10045794
pop ecx
push 3
pop edi
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x40]
mov dword [ebp + 0x10], esi
push edi
call fcn.10001eb9
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x2c], 0x7666
mov dword [ebp - 0x18], esi
push edi
call fcn.10001eb9
push ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.1000d551
add esp, 0xc
mov dword [ebp - 0x14], ebx
jmp 0x1000db49
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb8], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1000db38
mov dword [ebp - 0x14], ebx
jmp 0x1000db64
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0xab462a77
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1000db54
lea eax, [ebp - 0x14]
push eax
push 0x6de5
push ecx
push ecx
push 1
push ecx
push ecx
lea edx, [ebp - 0x84]
call fcn.1000c88f
mov esi, dword [ebp - 0x6c]
add esp, 0x1c
inc dword [esi + 4]
mov edx, dword [esi + 4]
cmp edx, dword [ebp + 0x10]
je 0x1000db9d
test edx, edx
je 0x1000db9d
xor ecx, ecx
inc ecx
jmp 0x1000db9f
mov ecx, ebx
xor eax, eax
cmp ecx, 0x6a6c
setle al
xor ecx, ecx
cmp eax, edx
setle cl
imul ecx, edx
sub ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x40]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [esi + 4]
add ecx, 0xcf0a
mov dword [eax + 4], ecx
xor eax, eax
cmp ecx, 0xd018
setle al
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], ebx
mov edi, dword [ebp - 0x40]
je 0x1000dbed
cmp dword [edi], ebx
je 0x1000dbed
xor ecx, ecx
inc ecx
jmp 0x1000dbef
mov ecx, ebx
xor eax, eax
cmp ecx, 9
setle al
xor ecx, ecx
imul eax, eax, 0xdb5a
cmp eax, 0x28e
setl cl
xor edx, edx
cmp ecx, 0xcdee
setg dl
xor eax, eax
cmp dword [esi + 4], edx
setge al
cmp eax, dword [esi + 4]
jg 0x1000dc27
cmp dword [edi], ebx
jne 0x1000dc27
mov ecx, ebx
jmp 0x1000dc2a
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
imul eax, ecx
cmp eax, dword [ebp - 0x2c]
jg 0x1000dc44
mov eax, dword [ebp - 0x40]
cmp dword [eax + 8], ebx
je 0x1000dc44
xor eax, eax
inc eax
jmp 0x1000dc46
mov eax, ebx
mov ecx, 0xcd1ac8c6
cmp ecx, eax
mov eax, dword [ebp - 0x18]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x84]
lea ecx, [ebp - 0x84]
setle dl
mov dword [eax + 4], edx
call fcn.10001f3c
lea ecx, [ebp - 0x40]
call fcn.10001f3c
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 2
call fcn.10001f3c
push dword [ebp - 0x34]
lea ecx, [ebp - 0x9c]
call fcn.1000c3be
mov eax, dword [0x1013ebec]
test al, 1
jne 0x1000dcbb
or eax, 1
mov dword [0x1013ebec], eax
push 0xab0b
mov byte [ebp - 4], 8
call fcn.1001c41a
pop ecx
mov word [0x1013d848], ax
mov byte [ebp - 4], 2
push 2
lea ecx, [ebp - 0xa8]
call fcn.10001eb9
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x28], 0xfffffff6
push 3
call fcn.10001eb9
push ecx
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xa
push eax
push 0x5f0b
lea eax, [ebp - 0xa8]
mov dword [ebp - 0x48], 0xa7b7e80d
push eax
mov dword [ebp - 0x5c], 8
mov edx, 0x4b39
push 1
call fcn.1000f11f
add esp, 0x14
mov dword [ebp - 0x20], ebx
jmp 0x1000dd24
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x78]
mov dword [eax + ecx*4], 0xc69aed23
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x1000dd14
push ecx
mov dl, 1
lea ecx, [ebp - 0x78]
call fcn.1000c9b6
mov dword [ebp - 0x28], 2
pop ecx
cmp dword [ebp - 0x28], ebx
jl 0x1000dd9e
lea eax, [ebp - 0x28]
mov dword [ebp - 0x60], 0x4ef66b17
push eax
push 0x32c7
push 0x6b0f
lea eax, [ebp - 0x5c]
push eax
push ecx
push 0x2238
push ecx
lea eax, [ebp - 0x48]
mov cl, 1
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.1000ca01
mov byte [ebp + 0x13], bl
add esp, 0x28
cmp byte [ebp + 0x13], 0
je 0x1000dd99
push 1
push 0x6342
push 1
xor dl, dl
mov ecx, 0x77a1
call fcn.1000d7e8
add esp, 0xc
dec dword [ebp - 0x28]
jns 0x1000dd42
lea ecx, [ebp - 0x78]
call fcn.10001f3c
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 2
call fcn.10001f3c
mov eax, dword [0x1013ebec]
test al, 2
jne 0x1000dddf
or eax, 2
mov dword [0x1013ebec], eax
push 0x116b0
mov byte [ebp - 4], 0xb
call fcn.1001c41a
pop ecx
mov word [0x1013ebe4], ax
mov byte [ebp - 4], 2
push 0x1a
mov esi, ebx
pop edi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], esi
cmp esi, dword [eax]
jae 0x1000df1d
call fcn.1000c5bc
push 0x24
xor edx, edx
mov dword [ebp - 0x24], 0x251b
pop ecx
div ecx
cmp dword [ebp - 0x24], 0x25cb
mov dword [ebp - 0x30], edx
jle 0x1000de7a
mov dword [ebp + 0x10], ebx
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov ebx, dword [ebp + 0x10]
mov eax, esi
mov esi, 0x55cb
cdq
idiv edi
add edx, ebx
mov dword [ebp - 0x2c], edx
mov ebx, edx
mov eax, ebx
mov ecx, 0x10078fb8
cdq
push edx
push eax
call fcn.10001d2f
inc ebx
dec esi
jne 0x1000de2f
mov esi, dword [ebp - 0x18]
inc edi
mov ebx, dword [ebp + 0x10]
cmp edi, 0x75eb
jl 0x1000de1e
inc esi
mov dword [ebp - 0x18], esi
push 0
pop ebx
cmp esi, 0x6b4f
jl 0x1000de19
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp + 0x10], eax
cmp eax, 0x14d9
jl 0x1000de14
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov esi, dword [ebp - 0x1c]
push 0x1a
pop edi
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x24], 0x24de
jge 0x1000dec0
mov edx, str.tiqcmmrk_inibzqlw_qpfzieguf_udwmfyjwz
mov ecx, 0x10078fb8
call fcn.10003c4d
jmp 0x1000dec0
lea eax, [ebp - 0x4c]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x4c], 0x3ae35568
push eax
push 0x615a
push ecx
mov dword [ebp - 0x50], ebx
lea ecx, [ebp - 0x58]
mov dl, 1
mov dword [ebp - 0x58], ebx
call fcn.1000cddb
mov eax, dword [ebp - 0x30]
add esp, 0x10
cmp eax, edi
jge 0x1000deff
movzx edx, word [0x1013d848]
jmp 0x1000df09
cdq
idiv edi
movzx eax, word [0x1013ebe4]
add edx, eax
lea ecx, [ebp - 0x9c]
push edx
call fcn.1000f3fe
inc esi
jmp 0x1000dde4
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x9c]
cmp eax, ecx
je 0x1000df35
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
call fcn.100022dc
push ebx
push 1
lea ecx, [ebp - 0x9c]
call fcn.100023b6
jmp 0x1000df52
cmp byte [edx], 0
je 0x1000df52
push 0
call dword [sym.imp.USER32.dll_CharUpperW]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret