Function at 0x1001f620
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x190
push ebx
push esi
push edi
mov dword [ebp - 0x168], 0xf6
movsx eax, word [0x1007f1a8]
mov dword [ebp - 0x28], eax
movzx ecx, byte [0x1007f026]
mov dword [ebp - 0x3c], ecx
movzx dx, byte [0x1007f026]
mov word [ebp - 0x14], dx
mov ax, word [0x1007f16c]
mov word [ebp - 0x44], ax
mov cl, byte [0x1007f120]
mov byte [ebp - 4], cl
mov dx, word [0x1007f16c]
mov word [ebp - 8], dx
mov byte [ebp - 1], 0x15
mov eax, 0xe5dc
mov word [ebp - 0x48], ax
mov cx, word [0x1007f1b8]
mov byte [ebp - 9], cl
mov edx, dword [0x1007f178]
mov eax, dword [0x1007f17c]
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], eax
mov ecx, dword [0x1007f1bc]
xor edx, edx
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x114], edx
mov eax, dword [0x1007f138]
mov ecx, dword [0x1007f13c]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov edx, dword [0x1007f120]
mov dword [ebp - 0x60], edx
mov eax, 0x8c72e
mov dword [ebp - 0x9c], 0xa6fdf8f6
mov dword [ebp - 0x98], eax
movzx eax, byte [0x1007f04e]
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov ecx, 0x357
mov word [ebp - 0x20], cx
mov dx, word [0x1007f188]
mov word [ebp - 0x24], dx
mov dword [ebp - 0x4c], 0x3945a32e
mov byte [ebp - 2], 0x7c
mov dword [ebp - 0x1c], 0xad2a
xor eax, eax
mov dword [ebp - 0x30], 0x6a5d
mov dword [ebp - 0x2c], eax
movzx ecx, byte [0x1007f026]
mov dword [ebp - 0x10], ecx
movsx edx, word [0x1007f148]
mov dword [ebp - 0xdc], edx
mov byte [ebp - 3], 0x58
mov eax, 0xffffaf70
mov word [ebp - 0xe8], ax
mov dword [ebp - 0x16c], 0xf2
mov ecx, dword [0x1007f154]
mov dword [ebp - 0x170], ecx
xor edx, edx
mov dword [ebp - 0x188], 0x4f6fc784
mov dword [ebp - 0x184], edx
mov ax, word [0x1007f14c]
mov word [ebp - 0xc8], ax
mov ecx, dword [0x1007f160]
mov edx, dword [0x1007f164]
mov dword [ebp - 0x174], edx
mov word [ebp - 0xcc], cx
mov eax, 0xffffccea
mov word [ebp - 0xd0], ax
mov dword [ebp - 0x178], 0xf70b147f
mov byte [ebp - 0x3d], 9
mov dword [ebp - 0x17c], 0x61b53d68
xor ecx, ecx
mov dword [ebp - 0x190], 0x3c
mov dword [ebp - 0x18c], ecx
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0xd8], 0
cmp dword [ebp - 0x8c], 0
je 0x1001f81a
mov dword [ebp - 0xd4], 1
mov edx, dword [ebp - 0xd4]
push edx
mov eax, dword [ebp - 0xd8]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call dword [sym.imp.USER32.dll_GetUpdateRect]
mov dword [ebp - 0x180], eax
mov edx, dword [ebp - 0x38]
or edx, dword [ebp - 0x34]
jne 0x1001f82b
mov dword [ebp - 0x68], 1
jmp 0x1001f832
mov dword [ebp - 0x68], 0
cmp dword [ebp - 0x68], 0xe7c7700
jle 0x1001f84f
xor eax, eax
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0xa0], eax
jmp 0x1001f85a
xorps xmm0, xmm0
movlpd qword [ebp - 0xa4], xmm0
mov ecx, dword [0x1007f138]
mov edx, dword [0x1007f13c]
not ecx
not edx
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xec]
jg 0x1001f89d
jl 0x1001f894
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [ebp - 0xf0]
jae 0x1001f89d
mov dword [ebp - 0x70], 1
jmp 0x1001f8a4
mov dword [ebp - 0x70], 0
mov edx, dword [0x1007f160]
mov eax, dword [0x1007f164]
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0xf8]
or ecx, dword [ebp - 0xf4]
jne 0x1001f8dd
xor edx, edx
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xa8], edx
jmp 0x1001f8e8
xorps xmm0, xmm0
movlpd qword [ebp - 0xac], xmm0
mov eax, dword [0x1007f1d0]
mov ecx, dword [0x1007f1d4]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], ecx
mov edx, dword [ebp - 0xfc]
cmp edx, dword [ebp - 0xa8]
jl 0x1001f926
jg 0x1001f91d
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0xac]
jbe 0x1001f926
mov dword [ebp - 0x6c], 1
jmp 0x1001f92d
mov dword [ebp - 0x6c], 0
mov ecx, dword [ebp - 0x6c]
not ecx
cmp dword [ebp - 0x70], ecx
jg 0x1001fb41
movzx dx, byte [ebp - 1]
movzx eax, dx
push eax
push 0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x14c], edx
movzx eax, cx
push eax
movzx cx, byte [0x1007f026]
movzx edx, cx
push edx
mov eax, dword [0x1007f190]
mov ecx, dword [0x1007f194]
mov dword [ebp - 0x150], ecx
movzx edx, ax
push edx
call fcn.10036740
add esp, 0x14
cwde
mov dword [0x1007f144], eax
cmp dword [0x1007f144], 0
je 0x1001faf8
xor ecx, ecx
mov dword [0x1007f120], 1
mov dword [0x1007f124], ecx
movzx eax, word [ebp - 8]
movzx edx, word [0x1007f1c8]
imul eax, edx
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov eax, dword [0x1007f144]
sub eax, 0x1b
cdq
mov dword [0x1007f178], eax
mov dword [0x1007f17c], edx
mov eax, dword [0x1007f120]
mov ecx, dword [0x1007f124]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 0x94]
or edx, dword [ebp - 0x90]
je 0x1001fa09
cmp dword [ebp - 0x94], 1
jne 0x1001fa04
cmp dword [ebp - 0x90], 0
je 0x1001fa1f
jmp 0x1001faf6
xor eax, eax
mov dword [0x1007f188], 0xfc
mov dword [0x1007f18c], eax
jmp 0x1001faf6
mov ecx, dword [ebp - 0x9c]
or ecx, dword [ebp - 0x98]
jne 0x1001fa36
mov dword [ebp - 0x74], 1
jmp 0x1001fa3d
mov dword [ebp - 0x74], 0
movzx edx, byte [0x1007f026]
imul edx, dword [ebp - 0x10]
test edx, edx
jne 0x1001fa60
xor eax, eax
mov dword [ebp - 0xb4], 1
mov dword [ebp - 0xb0], eax
jmp 0x1001fa6b
xorps xmm0, xmm0
movlpd qword [ebp - 0xb4], xmm0
movzx eax, word [0x1007f1b8]
mov ecx, dword [ebp - 0x74]
sub ecx, dword [ebp - 0x10]
xor eax, ecx
not eax
cdq
mov ebx, eax
movzx eax, byte [0x1007f027]
cdq
push edx
push eax
mov edx, dword [0x1007f17c]
push edx
mov eax, dword [0x1007f178]
push eax
call fcn.1005a1b0
push edx
push eax
mov ecx, dword [ebp - 0xb0]
push ecx
mov edx, dword [ebp - 0xb4]
push edx
call fcn.1005a1b0
xor ebx, eax
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x3c]
cdq
mov ecx, dword [0x1007f124]
push ecx
mov ecx, dword [0x1007f120]
push ecx
push edx
push eax
call fcn.1005a1b0
mov dword [ebp - 0x3c], eax
movzx edx, byte [0x1007f027]
xor edx, dword [0x1007f144]
jne 0x1001fae9
mov dword [ebp - 0x78], 1
jmp 0x1001faf0
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1c], eax
jmp 0x1001fb3f
mov ecx, dword [str.C]
xor edx, edx
and ecx, 0xefe077cd
and edx, 0x2989a
mov dword [0x1007f1c0], ecx
mov dword [0x1007f1c4], edx
movzx eax, word [0x1007f16c]
mov ecx, dword [ebp - 0x10]
sub ecx, eax
and ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x154], eax
sub edx, 0xc2
mov dword [ebp - 0x10], edx
jmp 0x1001fb7f
movsx ecx, byte [ebp - 4]
movzx edx, word [ebp - 0x14]
or ecx, edx
jne 0x1001fb7f
mov eax, 1
test eax, eax
je 0x1001fb7f
movzx ecx, word [0x1007f168]
xor ecx, 0x67
mov dword [str.C], ecx
movzx edx, word [ebp - 8]
mov eax, dword [0x1007f1a4]
sub eax, edx
mov ecx, dword [0x1007f1a4]
add ecx, eax
mov dword [0x1007f1a4], ecx
mov edx, dword [0x1007fc38]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x38]
add eax, 0xc
mov byte [ebp - 9], al
movzx ecx, word [ebp - 0x14]
and ecx, dword [ebp - 0xdc]
mov word [ebp - 0x14], cx
mov edx, dword [ebp - 0x5c]
add edx, 0x45c
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x58], 0
jmp 0x1001fbbd
mov eax, dword [ebp - 0x58]
add eax, 1
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0x2f8
jge 0x1001fc09
mov ecx, 2
mov word [ebp - 0x20], cx
mov edx, dword [ebp - 0x28]
sub edx, 0x4502
mov byte [ebp - 1], dl
mov eax, dword [ebp - 0x148]
xor eax, 0xfb84dd9f
mov byte [ebp - 1], al
mov ecx, dword [0x1007f190]
mov edx, dword [0x1007f194]
add ecx, 1
adc edx, 0
mov dword [0x1007f190], ecx
mov dword [0x1007f194], edx
jmp 0x1001fbb4
mov eax, dword [ebp - 0x5c]
add eax, 0x26c
mov dword [ebp - 0x158], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov byte [0x1007f027], al
movzx ecx, byte [0x1007f027]
test ecx, ecx
je 0x1001fcfe
movzx edx, byte [0x1007f026]
cmp edx, dword [0x1007f170]
jne 0x1001fc68
movzx eax, byte [ebp - 1]
sub eax, 0xe9
mov ecx, dword [ebp - 0x4c]
xor ecx, eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
add edx, 1
adc eax, 0
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
jmp 0x1001fcfe
mov ecx, dword [0x1007f190]
mov esi, dword [0x1007f194]
movzx eax, byte [ebp - 2]
cdq
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], edx
mov edx, dword [ebp - 0x104]
cmp edx, dword [ebp - 0x10c]
jg 0x1001fcb8
jl 0x1001fcaf
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x110]
jae 0x1001fcb8
mov dword [ebp - 0x7c], 1
jmp 0x1001fcbf
mov dword [ebp - 0x7c], 0
mov ecx, dword [0x1007f144]
cmp ecx, dword [ebp - 0x7c]
jne 0x1001fcfe
mov eax, dword [ebp - 0x10]
cdq
mov edx, dword [0x1007f1b0]
sub edx, eax
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x15c], ecx
xor eax, 0x293cb1ae
sub edx, eax
mov word [ebp - 0x44], dx
mov edx, 0xf0
mov word [ebp - 8], dx
mov ax, word [ebp - 0x10]
mov word [ebp - 0x48], ax
mov ecx, dword [ebp - 0x5c]
add ecx, 0x371
mov dword [ebp - 0xe0], ecx
movsx edx, word [0x1007f1a8]
mov eax, dword [ebp - 0x1c]
sub eax, edx
mov ecx, dword [ebp - 0x1c]
or ecx, eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x60], 0
jne 0x1001fd30
mov dword [ebp - 0x80], 1
jmp 0x1001fd37
mov dword [ebp - 0x80], 0
movzx edx, byte [0x1007f026]
mov eax, dword [0x1007f144]
not eax
add eax, dword [ebp - 0x80]
lea ecx, [eax + edx + 0xf6e9]
test ecx, ecx
jne 0x1001fd67
xor edx, edx
mov dword [ebp - 0xbc], 1
mov dword [ebp - 0xb8], edx
jmp 0x1001fd72
xorps xmm0, xmm0
movlpd qword [ebp - 0xbc], xmm0
movsx eax, word [0x1007f15c]
not eax
add eax, dword [ebp - 0x60]
cdq
push edx
push eax
mov eax, dword [0x1007f1c4]
push eax
mov ecx, dword [0x1007f1c0]
push ecx
call fcn.1005a1b0
add eax, dword [ebp - 0xbc]
adc edx, dword [ebp - 0xb8]
mov dword [0x1007f198], eax
mov dword [0x1007f19c], edx
mov edx, dword [ebp - 0x64]
sub edx, dword [ebp - 0xe0]
imul eax, edx, 0xffffff09
imul ecx, dword [ebp - 0x64], 0x19
mov edx, 0x5a
sub edx, ecx
cmp eax, edx
je 0x100201a0
imul eax, dword [ebp - 0x28], 0x1e7
xor ecx, ecx
mov dword [0x1007f190], eax
mov dword [0x1007f194], ecx
mov edx, 0xe941d
mov dword [ebp - 0x118], 0xa9ccaeda
mov dword [ebp - 0x114], edx
movzx eax, byte [ebp - 2]
movzx ecx, byte [ebp - 9]
not ecx
add eax, ecx
cdq
mov esi, eax
mov edi, edx
movzx eax, word [ebp - 8]
cdq
mov ecx, dword [0x1007f130]
mov ebx, dword [0x1007f134]
push ebx
push ecx
push edx
push eax
call fcn.1005a1b0
sub esi, eax
sbb edi, edx
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], edi
mov edx, dword [ebp - 0x120]
or edx, dword [ebp - 0x11c]
jne 0x1001fe52
xor eax, eax
mov dword [ebp - 0x128], 1
mov dword [ebp - 0x124], eax
jmp 0x1001fe5d
xorps xmm0, xmm0
movlpd qword [ebp - 0x128], xmm0
mov eax, dword [ebp - 0x3c]
cdq
mov ecx, dword [0x1007f190]
mov edx, dword [0x1007f194]
mov dword [ebp - 0x160], edx
xor ecx, eax
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x164], edx
sub eax, ecx
sub eax, dword [ebp - 0x128]
mov word [ebp - 8], ax
movzx eax, byte [ebp - 2]
test eax, eax
je 0x1001fed7
mov ecx, 2
imul edx, ecx, 0x5091
mov ax, word [0x1007f140]
mov word [edx + 0x102e0068], ax
mov dword [0x1007f140], 0xe14eb7c8
mov eax, dword [ebp - 0x10]
cdq
add eax, dword [ebp - 0x9c]
adc edx, dword [ebp - 0x98]
mov dword [0x1007f188], eax
mov dword [0x1007f18c], edx
jmp 0x1001ff9a
cmp dword [ebp - 0x1c], 0
je 0x1001ff9a
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], ecx
mov eax, dword [0x1007f144]
cdq
mov esi, eax
mov edi, edx
mov edx, dword [ebp - 0x2c]
add esi, dword [ebp - 0x30]
adc edi, edx
mov eax, dword [0x1007f1d0]
mov ecx, dword [0x1007f1d4]
mov edx, dword [ebp - 0x34]
push edx
mov edx, dword [ebp - 0x38]
push edx
push ecx
push eax
call fcn.1005a1b0
sub esi, eax
sbb edi, edx
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], edi
mov eax, dword [ebp - 0x130]
or eax, dword [ebp - 0x12c]
jne 0x1001ff45
xor ecx, ecx
mov dword [ebp - 0x138], 1
mov dword [ebp - 0x134], ecx
jmp 0x1001ff50
xorps xmm0, xmm0
movlpd qword [ebp - 0x138], xmm0
movzx eax, byte [ebp - 1]
cdq
mov ecx, eax
movzx eax, byte [0x1007f04e]
cdq
sub eax, dword [0x1007f188]
add ecx, eax
add ecx, dword [ebp - 0x138]
mov word [0x1007f1b8], cx
movsx eax, byte [ebp - 3]
cdq
mov ecx, dword [0x1007f190]
mov esi, dword [0x1007f194]
push esi
push ecx
push edx
push eax
call fcn.1005a1b0
mov ecx, eax
movsx eax, byte [ebp - 3]
cdq
and eax, ecx
mov byte [ebp - 3], al
mov dword [ebp - 0x18], 0
jmp 0x1001ffac
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp + 0x14]
jae 0x100201a0
movzx ecx, word [ebp - 8]
movsx edx, word [ebp - 0x20]
cmp ecx, edx
jle 0x1001ffd0
mov dword [ebp - 0x88], 1
jmp 0x1001ffda
mov dword [ebp - 0x88], 0
movzx eax, word [ebp - 8]
cmp eax, 0x19
jle 0x1001ffef
mov dword [ebp - 0x84], 1
jmp 0x1001fff9
mov dword [ebp - 0x84], 0
mov ecx, dword [ebp - 0x88]
cmp ecx, dword [ebp - 0x84]
je 0x1002005c
mov edx, dword [ebp - 0x28]
xor eax, eax
mov ecx, 8
imul ecx, ecx, 0x44
mov dword [ecx + 0x1016a990], edx
mov dword [ecx + 0x1016a994], eax
mov edx, dword [0x1007f130]
mov eax, dword [0x1007f134]
add edx, dword [ebp - 0x38]
adc eax, dword [ebp - 0x34]
mov ecx, dword [0x1007f130]
mov esi, dword [0x1007f134]
add ecx, edx
adc esi, eax
mov dword [0x1007f130], ecx
mov dword [0x1007f134], esi
movzx edx, word [0x1007f128]
sub edx, dword [ebp - 0x28]
mov byte [ebp - 4], dl
jmp 0x1002007c
mov eax, dword [0x1007f154]
mov dword [0x1007f180], eax
mov eax, dword [0x1007f1a4]
add eax, 0xef69
cdq
mov dword [0x1007f1b0], eax
mov dword [0x1007f1b4], edx
mov byte [0x1007f04e], 0
imul ecx, dword [ebp - 0x3c], 0xc963e7a4
movsx edx, word [ebp - 0x24]
add edx, ecx
mov word [ebp - 0x24], dx
mov ax, word [0x1007fc38]
mov word [0x1007f1a0], ax
mov cl, byte [0x1007f04e]
mov byte [ebp - 0xe4], cl
cmp byte [ebp - 0xe4], 0
je 0x100200ba
jmp 0x10020179
mov edx, dword [ebp - 0x38]
sub edx, 0xefe68ac4
mov eax, dword [ebp - 0x34]
sbb eax, 0
mov dword [0x1007f188], edx
mov dword [0x1007f18c], eax
movsx eax, word [0x1007f15c]
or eax, dword [0x1007f144]
cdq
mov ecx, dword [0x1007f188]
add ecx, 0xc475
mov esi, dword [0x1007f18c]
adc esi, 0
add eax, ecx
adc edx, esi
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], edx
mov edx, dword [ebp - 0x140]
or edx, dword [ebp - 0x13c]
jne 0x10020129
xor eax, eax
mov dword [ebp - 0xc4], 1
mov dword [ebp - 0xc0], eax
jmp 0x10020134
xorps xmm0, xmm0
movlpd qword [ebp - 0xc4], xmm0
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc0]
mov dword [0x1007f130], ecx
mov dword [0x1007f134], edx
xor eax, eax
mov ecx, dword [0x1007f188]
sub ecx, dword [ebp - 0x28]
mov edx, dword [0x1007f18c]
sbb edx, eax
mov eax, dword [0x1007f188]
sub eax, ecx
mov ecx, dword [0x1007f18c]
sbb ecx, edx
mov dword [0x1007f188], eax
mov dword [0x1007f18c], ecx
mov eax, dword [ebp - 0x18]
xor edx, edx
div dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movsx ecx, byte [eax + edx]
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x18]
movsx eax, byte [edx]
xor eax, ecx
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x18]
mov byte [ecx], al
jmp 0x1001ffa3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret