Function at 0x10035524
Capabilities:
Generate random numbers using a mersenne twister
Identify system language via api
Query environment variable

Disassembly:
mov eax, 0x1005c6d9
call fcn.1005b550
sub esp, 0x84
cmp byte [ebp + 0x14], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x64], dl
mov dword [ebp - 0x80], ecx
je 0x10035d59
mov dword [ebp - 0x1c], 0x4407
xor ebx, ebx
cmp dword [ebp - 0x1c], 0x47b7
jle 0x10035582
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
mov ecx, 0x10075c58
cdq
push edx
push eax
call fcn.1000ed7e
inc edi
cmp edi, 0x5582
jl 0x10035560
inc esi
cmp esi, 0x5af4
jl 0x1003555e
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x1c], 0x43ca
jge 0x1003559d
mov edx, str.dnyjbvt_dlgbl_nnlxb_ffuudt_gsxskbbf_ahdy_yexmdtbep_fcpxnsjh_qxwxelrm_lexmpfc_vyh
mov ecx, 0x10075c58
call fcn.1001381a
or edi, 0xffffffff
mov dword [ebp - 4], edi
cmp byte [ebp + 8], 0
je 0x10035616
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov eax, dword [edx]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, 0x348fb8aa
mov eax, dword [ebp - 0x80]
setne cl
xor esi, esi
inc esi
mov eax, dword [eax]
sub ecx, eax
cmp ecx, esi
je 0x100355de
mov eax, dword [ebp + 0x24]
cmp dword [eax], ebx
jne 0x100355e0
mov esi, ebx
xor eax, eax
test esi, esi
setg al
mov dword [edx], eax
mov ecx, dword [edx]
mov eax, dword [ebp + 0x20]
mov dword [eax], ecx
jmp 0x10035d7a
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x14], ebx
jmp 0x10035638
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x30], 0xfffffffa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003562a
xor esi, esi
mov dword [ebp - 0x2c], ebx
inc esi
cmp dword [ebp - 0x2c], 3
jg 0x100356fc
mov dword [ebp - 0x1c], 0xfffffffc
xor edx, edx
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setl dl
cmp edx, 0x162f6306
jge 0x10035690
cmp dword [ebp - 0x30], ebx
je 0x10035690
mov eax, dword [ebp - 0x2c]
cmp dword [ebp + eax*4 - 0x50], ebx
jne 0x1003569b
mov eax, dword [ebp - 0x2c]
cmp dword [ebp + eax*4 - 0x50], ebx
mov eax, ebx
je 0x1003569d
mov eax, esi
mov dword [ebp - 0x1c], eax
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x4c]
cmp eax, ecx
mov eax, dword [ebp - 0x2c]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x50]
cmp eax, edx
mov eax, dword [ebp - 0x2c]
setne cl
mov eax, dword [ebp + eax*4 - 0x50]
add ecx, eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x2c]
imul edx, ecx
sub edx, eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x2c]
add ecx, edx
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x50]
cmp eax, ecx
setl dl
mov dword [ebp - 0x24], edx
inc dword [ebp - 0x2c]
jmp 0x10035644
mov eax, dword [0x100d9fe8]
test al, 1
jne 0x10035746
or eax, esi
mov dword [0x100d9fe4], edi
mov ecx, 0x1571
mov dword [0x100d9fe8], eax
mov dword [0x100d8c64], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, esi
mov dword [esi*4 + 0x100d8c64], ecx
inc esi
cmp esi, 0x270
jl 0x1003571d
mov dword [0x100d8c60], 0x270
mov dword [ebp - 0x18], 0x4dbb
cmp dword [ebp - 0x18], 0x4dcd
jle 0x100357bd
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov eax, esi
mov dword [ebp - 0x14], 0x5da1
mov dword [ebp - 0x1c], eax
and eax, edi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x54], eax
mov edi, eax
mov eax, edi
mov ecx, 0x10075c58
xor eax, ebx
cdq
push edx
push eax
call fcn.1000ed7e
inc ebx
cmp ebx, 0x378c
jl 0x10035773
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
dec eax
dec dword [ebp - 0x14]
push 0
mov dword [ebp - 0x1c], eax
pop ebx
jne 0x10035769
inc esi
cmp esi, 0x63c4
jl 0x1003575d
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x12a5
jl 0x1003575b
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
or edi, 0xffffffff
mov dword [ebp - 4], 2
cmp dword [ebp - 0x18], 0x4c60
jge 0x100357fd
mov edx, str.hdznd_ljd_bwxzqwml_uur_uhtfgewtm_jje
mov ecx, 0x10075c58
call fcn.1001381a
jmp 0x100357fd
mov dword [ebp - 4], edi
xor edx, edx
mov dword [ebp - 0x28], 0xfffffff8
inc edx
mov dword [ebp - 0x24], 0x19003123
mov dword [ebp - 0x18], ebx
jmp 0x10035824
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x60], 0xfffffffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10035816
mov dword [ebp - 0x18], ebx
jmp 0x1003583d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x40], 0xf603fa75
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1003582f
mov dword [ebp - 0x60], ebx
jmp 0x100359b1
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 0x54], 0x26d5d64f
push ecx
call fcn.10034fbc
xor edx, edx
mov dword [ebp - 0x14], ebx
pop ecx
inc edx
jmp 0x100359a5
mov dword [ebp - 0x20], 0xdf82d83d
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x1c], ebx
jne 0x1003588a
mov ecx, ebx
cmp dword [ebp - 0x5c], ebx
je 0x1003588c
mov ecx, edx
xor eax, eax
cmp ecx, 9
sete al
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x60], ebx
jne 0x1003589f
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
je 0x100358d3
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x24], eax
jmp 0x1003599f
mov dword [ebp - 0x20], 0x348f
mov dword [ebp - 0x38], 0x821d2a6a
mov dword [ebp - 0x18], ebx
jmp 0x10035996
mov dword [ebp - 0x20], 0xf937b1bd
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x40], ebx
jne 0x1003596e
mov dword [ebp - 0x20], 0xffff
mov ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
cmp dword [ebp + eax*4 - 0x40], ecx
jge 0x1003591f
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x40], ebx
jne 0x1003591f
mov edx, ebx
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp + eax*4 - 0x40]
mov eax, dword [ebp - 0x14]
add esi, edx
neg esi
sbb esi, esi
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x40]
neg esi
cmp esi, 0xfffffff8
sete cl
xor eax, eax
cmp edx, ecx
setge al
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], edi
ja 0x10035958
cmp dword [ebp - 0x38], ebx
jne 0x10035958
xor edx, edx
mov esi, ebx
inc edx
jmp 0x1003595d
xor edx, edx
inc edx
mov esi, edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp esi, eax
setle cl
sub ecx, dword [ebp - 0x38]
jne 0x1003596e
mov edx, ebx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
mov edx, 0x2156
setl cl
push ecx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x38]
push 0x2bde
call fcn.10035dd0
inc dword [ebp - 0x18]
xor edx, edx
pop ecx
pop ecx
inc edx
cmp dword [ebp - 0x18], edx
jle 0x100358e9
mov eax, dword [ebp - 0x3c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jle 0x10035871
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0xffffffe4
je 0x1003584b
mov dword [ebp - 0x28], 0xa6318529
mov dword [ebp - 0x28], 0x9beb0647
mov dword [ebp - 0x20], 0x1a59
cmp dword [ebp - 0x20], 0x1ddd
jle 0x10035a3a
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov edi, esi
mov dword [ebp - 0x1c], 0x24b4
mov eax, ebx
mov dword [ebp - 0x24], ebx
mov esi, edi
mov dword [ebp - 0x28], ebx
mov ecx, eax
sar esi, cl
mov ecx, ebx
mov eax, esi
shl eax, cl
mov ecx, 0x10075c58
cdq
push edx
push eax
call fcn.1000ed7e
inc ebx
cmp ebx, 0x693a
jl 0x100359f5
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
push 0
pop ebx
cmp eax, 0x1a56
jl 0x100359ec
dec edi
dec dword [ebp - 0x1c]
jne 0x100359e7
mov esi, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x15b4
jl 0x100359de
or edi, 0xffffffff
mov dword [ebp - 0x28], edi
mov dword [ebp - 4], 4
cmp dword [ebp - 0x20], 0x1767
jge 0x10035a7d
mov edx, str.xjtneixum_dden_rhb
mov ecx, 0x10075c58
call fcn.1001381a
jmp 0x10035a7d
mov dword [ebp - 4], edi
xor esi, esi
mov dword [ebp - 0x28], 2
inc esi
mov dword [ebp - 0x28], ebx
push ebx
mov dword [ebp - 0x28], 0xfffffff8
push ecx
mov dword [ebp - 0x24], ebx
lea ecx, [ebp + 0x17]
mov byte [ebp + 0x17], bl
call fcn.100351fd
inc dword [ebp - 0x24]
cmp byte [0x100d8ad2], 0
pop ecx
pop ecx
jne 0x10035c1e
mov dword [ebp - 0x14], ebx
jmp 0x10035ac9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0xf0ea75c9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10035abb
push 0x1c21
push 0x749f
lea eax, [ebp - 0x32]
mov byte [ebp - 0x32], bl
push eax
push 0x5066
push ebx
push 0x2488
push 0x14de
push esi
push 0x1687
mov edx, 0x484
mov ecx, 0x737a
call fcn.10036f7f
add esp, 0x24
mov dword [ebp - 0x6c], ebx
jmp 0x10035b2b
mov dword [ebp - 0x1c], 0x6801fc3e
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x6c], ebx
jne 0x10035b23
mov eax, ebx
cmp dword [ebp - 0x1c], esi
jg 0x10035b25
mov eax, esi
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 8
jg 0x10035b0d
push ecx
push ebx
push 0x7f08
push 0x864
push ecx
push ecx
push 0x3c2
push 0x6707
push ecx
mov edx, 0x100d8c60
call fcn.10035052
xor edx, edx
add esp, 0x24
inc edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x18], 0xa
cmp dword [ebp - 0x18], 4
jne 0x10035bb1
mov dword [ebp - 0x1c], 0x7b1891f7
mov dword [ebp - 0x14], ebx
jmp 0x10035b87
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x90], 0x6df251d6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10035b76
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], ebx
jl 0x10035ba5
xor dl, dl
call fcn.10035355
dec dword [ebp - 0x1c]
jns 0x10035b99
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
je 0x10035b6a
xor edx, edx
inc edx
mov dword [ebp - 0x18], 0x17
jmp 0x10035c10
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 6
je 0x10035c0d
mov dword [ebp - 0x14], ebx
jmp 0x10035bdd
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7c], 0x3717be9f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10035bcf
mov dword [ebp - 0x78], ebx
jmp 0x10035bfb
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x10035bf8
push ebx
call fcn.10035384
pop ecx
inc dword [ebp - 0x78]
cmp dword [ebp - 0x78], 0x16
jne 0x10035be8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 6
jne 0x10035bca
xor edx, edx
inc edx
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffffc
jne 0x10035bba
mov byte [0x100d8ad2], dl
jmp 0x10035c21
xor edx, edx
inc edx
mov dword [ebp - 0x14], 0xa5b7d8cf
mov dword [ebp - 0x1c], 0xc345fe46
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x14], ebx
jmp 0x10035c45
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x74], 0xe446df3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10035c37
mov eax, dword [ebp - 0x70]
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, edi
setne cl
cmp ecx, 0xe7ccc895
je 0x10035c6f
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x70], ebx
jne 0x10035c7b
mov eax, ebx
cmp dword [ebp - 0x14], ebx
je 0x10035c7d
mov eax, edx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x1c], ebx
jne 0x10035c8e
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov ecx, 0x79ad
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x74]
push ebx
push 0x7b41
push ebx
push 0x4897
push 0x4396
push edx
mov edx, 0x3f46
call fcn.10035df2
mov eax, dword [0x100d8c60]
add esp, 0x18
cmp eax, 0x270
jne 0x10035d07
mov edx, 0x100d8c68
mov ecx, dword [edx - 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, dword [edx - 4]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x630]
xor eax, ecx
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x100d9628
jl 0x10035ccc
jmp 0x10035d13
cmp eax, 0x4e0
jb 0x10035d18
call fcn.10037449
mov eax, dword [0x100d8c60]
mov edx, dword [eax*4 + 0x100d8c64]
inc eax
mov dword [0x100d8c60], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x100d9fe4]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, dword [ebp + 0x10]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
jmp 0x100355ee
test dl, dl
je 0x10035d74
xor ebx, ebx
push ebx
push ebx
push 0xb57
push 0x1e30
push ebx
call dword [sym.imp.USER32.dll_InsertMenuW]
jmp 0x10035d7a
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret