Function at 0x5add8317
Capabilities:
Identify system language via api

Disassembly:
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
jmp 0x5add86e0
and dword [edi + 0x20], 0
jmp 0x5add84b9
and dword [edi - 0xc], 0
jmp 0x5add8506
mov ecx, dword [edi]
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add0765
test eax, eax
jge 0x5add8483
jmp 0x5add8644
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push edi
push 4
push 0x1000
mov ebx, ecx
push 0x54
push dword [ebx + 0x4c]
call dword [sym.imp._CKERNEL.dll_VirtualAlloc]
xor edi, edi
cmp eax, edi
je 0x5addfeb1
or dword [ebx + 8], 0xffffffff
or dword [ebx + 0xc], 0xffffffff
mov ecx, dword [ebx + 0x24]
push esi
mov esi, eax
add eax, 0x54
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x1c], eax
mov eax, dword [0x5add864c]
mov dword [esi], eax
mov eax, dword [0x5add8650]
mov dword [ebp - 8], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], 0x10006
mov dword [esi + 0xc], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
call dword [sym.imp._CKERNEL.dll_GetUserDefaultUILanguage]
push 0
push 0x80
movzx eax, ax
push 3
push 0
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], edi
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x10], edi
push 1
xor eax, eax
lea edi, [esi + 0x14]
stosd dword es:[edi], eax
push 0x80000000
push dword [ebp + 0xc]
stosd dword es:[edi], eax
call dword [sym.imp._CKERNEL.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x5add83d7
lea eax, [esi + 0x14]
push eax
push 0
push 0
push edi
call dword [sym.imp._CKERNEL.dll_GetFileTime]
push edi
call dword [sym.imp._CKERNEL.dll_CloseHandle]
mov eax, dword [ebp - 4]
push dword [ebp + 0xc]
mov edi, dword [sym.imp._CKERNEL.dll_lstrlenW]
mov ecx, eax
sub ecx, dword [ebx + 0x4c]
mov dword [ebp + 8], eax
mov dword [esi + 0x34], ecx
call edi
test eax, eax
je 0x5add840f
lea ecx, [esi + 0x20]
push ecx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add0765
test eax, eax
jl 0x5add8644
push dword [ebp + 0x10]
call edi
test eax, eax
je 0x5add8433
lea ecx, [esi + 0x24]
push ecx
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add0765
test eax, eax
jl 0x5add8644
push dword [ebp + 0x14]
call edi
xor edi, edi
cmp eax, edi
je 0x5add8459
lea ecx, [esi + 0x28]
push ecx
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add0765
cmp eax, edi
jl 0x5add8644
cmp dword [ebp - 8], edi
mov dword [ebp + 0xc], edi
jle 0x5add84c8
mov dword [ebp + 0x10], edi
mov edi, dword [ebx + 0x20]
add edi, dword [ebp + 0x10]
mov eax, dword [edi]
test eax, eax
je 0x5add847f
push eax
call dword [sym.imp._CKERNEL.dll_lstrlenW]
test eax, eax
jne 0x5add0740
and dword [edi + 0x1c], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x5add05b1
push eax
call dword [sym.imp._CKERNEL.dll_lstrlenW]
test eax, eax
je 0x5add05b1
mov ecx, dword [edi + 4]
add edi, 0x20
push edi
push eax
push ecx
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add0765
test eax, eax
jl 0x5add8644
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
add dword [ebp + 0x10], 0x2c
cmp eax, dword [ebp - 8]
jl 0x5add8464
and dword [ebp + 0xc], 0
lea edi, [ebx + 0x330]
mov eax, dword [edi]
test eax, eax
je 0x5add05ba
push eax
call dword [sym.imp._CKERNEL.dll_lstrlenW]
test eax, eax
je 0x5add05ba
mov ecx, dword [edi]
lea edx, [edi - 0xc]
push edx
push eax
push ecx
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add0765
test eax, eax
jl 0x5add8644
inc dword [ebp + 0xc]
add edi, 4
cmp dword [ebp + 0xc], 2
jl 0x5add84d2
mov edi, dword [ebp - 4]
mov eax, edi
sub eax, dword [ebp + 8]
mov ecx, ebx
mov dword [esi + 0x38], eax
mov eax, edi
sub eax, dword [ebx + 0x4c]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 8]
shl eax, 4
push eax
push edi
mov dword [esi + 0x40], eax
call fcn.5add8096
xor ecx, ecx
cmp eax, ecx
jl 0x5add8644
mov eax, edi
add eax, dword [esi + 0x40]
cmp dword [ebp - 8], ecx
mov dword [ebp - 4], eax
mov dword [ebp + 0xc], ecx
jle 0x5add8582
mov dword [ebp + 0x10], ecx
mov ecx, dword [ebx + 0x20]
add ecx, dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0
mov dword [ebp + 0x14], ecx
je 0x5add86b9
cmp dword [ecx + 0x1c], 0
jne 0x5add86b9
inc dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
add dword [ebp + 0x10], 0x2c
cmp ecx, dword [ebp - 8]
jl 0x5add8554
xor ecx, ecx
cmp dword [ebp - 8], ecx
mov dword [ebp + 0xc], ecx
jle 0x5add8600
mov dword [ebp + 0x10], ecx
mov ecx, dword [ebx + 0x20]
add ecx, dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0
mov dword [ebp + 0x14], ecx
je 0x5add85f1
cmp dword [ecx + 0x1c], 0
jne 0x5add85f1
and dword [edi], 0
mov edx, dword [ecx + 0x20]
mov dword [edi + 4], edx
sub eax, dword [ebx + 0x4c]
push 0x5add8664
mov dword [edi + 8], eax
mov ecx, dword [ecx + 4]
push ecx
call fcn.5adc6a30
test eax, eax
mov ecx, ebx
je 0x5add923b
push dword [edi + 4]
lea eax, [ebp - 4]
push dword [ebx + 8]
push eax
push dword [ebp + 0x14]
call fcn.5add7981
test eax, eax
jl 0x5add8644
mov eax, dword [ebp - 4]
sub eax, dword [edi + 8]
sub eax, dword [ebx + 0x4c]
add edi, 0x10
mov dword [edi - 4], eax
mov eax, dword [ebp - 4]
inc dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
add dword [ebp + 0x10], 0x2c
cmp ecx, dword [ebp - 8]
jl 0x5add858d
push 8
push 0x5add8658
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add867f
test eax, eax
jl 0x5add8644
mov ecx, dword [ebp - 4]
sub ecx, dword [ebx + 0x4c]
cmp dword [esi + 0x1c], ecx
je 0x5add8624
mov dword [esi + 0x1c], ecx
or dword [esi + 0xc], 1
mov ecx, dword [ebx + 8]
mov dword [esi + 0x44], ecx
mov ecx, dword [ebx + 0xc]
mov dword [esi + 0x50], ecx
mov ecx, dword [ebx + 0x10]
mov dword [esi + 0x48], ecx
mov ecx, dword [ebx + 0x14]
and dword [esi + 0x10], 0
mov dword [esi + 0x4c], ecx
pop esi
pop edi
pop ebx
leave
ret 0x10
mov edx, dword [ecx + 0x1c]
mov dword [edi], edx
mov edx, dword [ecx + 0x20]
mov dword [edi + 4], edx
sub eax, dword [ebx + 0x4c]
push 0x5adcdd38
mov dword [edi + 8], eax
mov ecx, dword [ecx + 4]
push ecx
call fcn.5adc6a30
test eax, eax
je 0x5add05a6
push dword [edi + 4]
lea eax, [ebp - 4]
push dword [ebx + 8]
mov ecx, ebx
push eax
push dword [ebp + 0x14]
call fcn.5add7981
test eax, eax
jl 0x5add8644
mov eax, dword [ebp - 4]
sub eax, dword [edi + 8]
sub eax, dword [ebx + 0x4c]
add edi, 0x10
mov dword [edi - 4], eax
mov eax, dword [ebp - 4]
jmp 0x5add8571
mov eax, dword [edi + 8]
push 1
mov dword [ebx + 0xc], eax
push 1
lea eax, [ebp - 4]
push eax
call fcn.5adcdc3e
test eax, eax
jl 0x5add8644
push 0x2d8
lea eax, [ebx + 0x58]
push eax
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5add867f
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5adcdcca
push 0xc
push 0xc
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5adcdc3e
test eax, eax
jl 0x5add8644
push 4
push dword [ebp - 4]
mov ecx, ebx
call fcn.5add8096
test eax, eax
jl 0x5add8644
mov eax, dword [ebp - 4]
or dword [eax], 0xffffffff
add dword [ebp - 4], 4
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.5adcdcca
jmp 0x5add85df
push 8
call fcn.5adc157d
jmp 0x5add8645