Function at 0x4c4dc0
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x18
mov esi, dword [sym.imp.kernel32.dll_ConvertDefaultLocale]
mov dword [esp], 0x409
mov dword [ebp - 0x10], esi
call esi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1109
xor eax, eax
cmp ebx, 0x409
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x409
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x809
call esi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x110a
xor eax, eax
cmp ebx, 0x809
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x809
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x411
call esi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x110b
xor eax, eax
cmp ebx, 0x411
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x411
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x10411
call esi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x110c
xor eax, eax
cmp ebx, 0x10411
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x10411
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x10011
call esi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x110e
mov eax, 1
cmp ebx, 0x10011
je 0x4c4f33
mov edx, dword [0x8f0770]
test edx, edx
sete dl
xor eax, eax
cmp ebx, 0x10411
sete al
and eax, edx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 8], 0x10011
mov dword [esp + 4], str.Expected_lcid___08lx_got__08lx_n
call fcn.004b46e0
mov dword [esp], 0x1003c
mov eax, dword [ebp - 0x10]
call eax
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1113
mov eax, 1
cmp ebx, 0x1003c
je 0x4c4f96
mov eax, dword [0x8f0770]
test eax, eax
sete dl
xor eax, eax
cmp ebx, 0x1043c
sete al
and eax, edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x1003c
mov dword [esp + 4], str.Expected_lcid___08lx_got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 9
mov edi, dword [ebp - 0x10]
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1119
xor eax, eax
cmp ebx, 0x409
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x409
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x11
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x111b
xor eax, eax
cmp ebx, 0x411
sete al
mov dword [esp + 0xc], ebx
xor esi, esi
mov dword [esp + 8], 0x411
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
lea esi, [esi]
movzx edx, word [esi*4 + 0x5e0620]
mov dword [esp], edx
mov edi, edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
call eax
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov edx, dword [ebp - 0x14]
mov ecx, 1
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1120
movzx eax, word [esi*4 + 0x5e0622]
shl eax, 0xa
or eax, edx
cmp eax, ebx
je 0x4c50af
xor ecx, ecx
cmp dword [0x8f0770], 0
jne 0x4c50af
or di, 0x400
movzx edi, di
cmp edi, ebx
sete cl
cmp edx, ebx
sete dl
or ecx, edx
movzx ecx, cl
mov dword [esp + 0xc], ebx
add esi, 1
mov dword [esp + 8], eax
mov dword [esp + 4], str.Expected_lcid___08x_got__08lx_n
mov dword [esp], ecx
call fcn.004b46e0
cmp esi, 9
jne 0x4c5048
mov dword [esp], 0x7804
mov eax, dword [ebp - 0x10]
call eax
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1127
mov eax, 1
cmp ebx, 0x804
je 0x4c511b
mov edi, dword [0x8f0770]
test edi, edi
sete dl
xor eax, eax
cmp ebx, 0x7804
sete al
and eax, edx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 8], 0x804
mov dword [esp + 4], str.Expected_lcid___08x_got__08lx_n
call fcn.004b46e0
mov dword [esp], 0x7c04
mov eax, dword [ebp - 0x10]
call eax
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x112b
mov eax, 1
cmp ebx, 0xc04
je 0x4c5177
mov esi, dword [0x8f0770]
xor eax, eax
test esi, esi
je 0x4c5518
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 8], 0xc04
mov dword [esp + 4], str.Expected_lcid___08x_got__08lx_n
call fcn.004b46e0
mov dword [esp], 0x7c1a
mov eax, dword [ebp - 0x10]
call eax
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1130
mov eax, 1
cmp ebx, 0x241a
je 0x4c51db
mov ecx, dword [0x8f0770]
test ecx, ecx
sete dl
xor eax, eax
cmp ebx, 0x81a
sete al
and eax, edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x241a
mov dword [esp + 4], str.Expected_lcid___08x_got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x47f
mov edi, dword [ebp - 0x10]
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1135
xor eax, eax
cmp ebx, 0x47f
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x47f
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x10800
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1138
xor eax, eax
cmp ebx, 0x10800
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x10800
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x10400
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1139
xor eax, eax
cmp ebx, 0x10400
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x10400
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x800
mov dword [ebp - 0x10], edi
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov edi, dword [sym.imp.kernel32.dll_GetSystemDefaultLCID]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x113c
call edi
mov esi, eax
call edi
mov dword [esp + 0xc], ebx
cmp eax, ebx
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x400
mov edi, dword [ebp - 0x10]
call edi
sub esp, 4
mov esi, eax
call fcn.0057d110
mov ebx, dword [sym.imp.kernel32.dll_GetUserDefaultLCID]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x113d
call ebx
mov edi, eax
call ebx
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0
mov edi, dword [ebp - 0x10]
call edi
sub esp, 4
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x113e
call ebx
mov edi, eax
call ebx
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0xc00
mov edi, dword [ebp - 0x10]
call edi
sub esp, 4
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x113f
call ebx
mov edi, eax
call ebx
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x1000
mov edi, dword [ebp - 0x10]
call edi
sub esp, 4
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1141
call ebx
mov edx, eax
mov eax, 1
cmp edx, esi
je 0x4c5447
mov edx, dword [0x8f0770]
test edx, edx
sete dl
xor eax, eax
cmp esi, 0x1000
sete al
and eax, edx
mov dword [esp + 8], esi
mov dword [esp + 4], str.wrong_lcid__04lx_n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x1400
mov edi, dword [ebp - 0x10]
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1144
call dword [sym.imp.kernel32.dll_GetUserDefaultUILanguage]
cmp ebx, 0x1400
mov dword [esp + 8], ebx
movzx eax, ax
sete dl
mov dword [esp + 4], str.wrong_lcid__04lx_n
cmp eax, ebx
sete al
or edx, eax
movzx edx, dl
mov dword [esp], edx
call fcn.004b46e0
mov dword [esp], 0x7f
call edi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1146
mov eax, 1
cmp ebx, 0x7f
je 0x4c54ef
mov eax, dword [0x8f0770]
test eax, eax
sete dl
xor eax, eax
cmp ebx, 0x47f
sete al
and eax, edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x7f
mov dword [esp + 4], str.Expected_lcid___08lx__got__08lx_n
mov dword [esp], eax
call fcn.004b46e0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebx, 0x404
sete al
cmp ebx, 0x7c04
sete dl
or eax, edx
movzx eax, al
jmp 0x4c5177