Function at 0x100457f3
Capabilities:
Identify system language via api
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10064403
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
mov dword [esp + 0x1c], 0xc204e2db
xor ebx, ebx
push esi
mov dword [esp + 0x18], ebx
mov esi, ecx
mov dword [esp + 0x1c], ebx
push edi
mov dword [esp + 0x24], 0x12
jmp 0x10045908
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], 3
mov dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x14], ebx
jmp 0x10045862
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x6c], 0x5db5a26c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10045852
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
sub ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setne dl
add edx, dword [esp + 0x1c]
jne 0x100458a4
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x10]
dec eax
neg eax
sbb eax, eax
neg eax
sub ecx, eax
mov eax, dword [esp + 0x74]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
add ecx, eax
mov eax, dword [esp + 0x1c]
cmp ecx, eax
setge dl
add edx, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ebx
jmp 0x100458fd
mov dword [esp + 0x20], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x100458f1
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0xfffffff4
je 0x10045838
mov dword [esp + 0x20], 0x6338
mov dword [esp + 0x14], ebx
jmp 0x10045931
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x78], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10045921
mov eax, dword [esp + 0x20]
or edi, 0xffffffff
mov eax, dword [esp + 0x20]
cmp edi, eax
sbb eax, eax
neg eax
mov dword [esp + 0x78], eax
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1004596a
push 0xe21
push ebx
push ebx
push 0x26fb
push ebx
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
cmp byte [esi], bl
je 0x10045d5d
push 2
lea ecx, [esp + 0x58]
call fcn.10012e69
push 2
mov dword [esp + 0xb8], ebx
lea ecx, [esp + 0x64]
pop esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], 0x884cb8f6
mov dword [esp + 0x1c], 0xfffffffd
push esi
call fcn.10012e69
xor edx, edx
inc edx
mov byte [esp + 0xb4], dl
mov dword [esp + 0x24], 0xbdd7
mov dword [esp + 0x30], 0x2718
mov dword [esp + 0x2c], 0xeaac
mov dword [esp + 0x10], ebx
jmp 0x100459e0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x342eb90d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100459cd
mov dword [esp + 0x10], ebx
jmp 0x100459fb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100459ec
mov dword [esp + 0x10], ebx
jmp 0x10045cc8
push dword [esp + 0x34]
movdqa xmm0, xmmword [0x1000c010]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x88]
mov dword [esp + 0x34], 8
push eax
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], ebx
movdqu xmmword [esp + 0x90], xmm0
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
call fcn.10015cd9
push 1
lea ecx, [esp + 0x4c]
mov byte [esp + 0xb8], 2
call fcn.10012e69
mov byte [esp + 0xb4], 3
mov dword [esp + 0x1c], 0x54c
cmp dword [esp + 0x1c], 0x619
jle 0x10045b14
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov edi, ebx
mov dword [esp + 0x28], ebx
mov esi, ebx
mov dword [esp + 0x20], ebx
mov eax, edi
mov dword [esp + 0x2c], ebx
cdq
mov edi, ebx
idiv esi
lea esi, [edx + ecx]
mov eax, esi
lea ecx, [esp + 0x90]
or eax, edi
cdq
push edx
push eax
call fcn.1000d4be
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10045abb
mov eax, dword [eax]
push eax
call fcn.1004ded6
pop ecx
push ebx
push 1
lea ecx, [esp + 0x98]
call fcn.10013450
inc edi
cmp edi, 0x435d
jl 0x10045a9e
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
inc esi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], esi
cmp esi, 0x6e98
jl 0x10045a90
inc edi
mov dword [esp + 0x28], edi
cmp edi, 0x1666
jl 0x10045a8a
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0x5c4a
jl 0x10045a84
or edi, 0xffffffff
mov dword [esp + 0x2c], 0xfffffff7
cmp dword [esp + 0x1c], 0x336
jge 0x10045b31
push 0x1000baf8
call fcn.1004ded6
pop ecx
xor edx, edx
mov dword [esp + 0xb4], 3
inc edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], 0xa6f
mov dword [esp + 0x14], ebx
jmp 0x10045b64
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov dword [eax + ecx*4], 0xf27a4129
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10045b51
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
neg ecx
sbb ecx, ecx
neg ecx
imul eax, ecx
cmp edi, eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp ecx, eax
sbb eax, eax
neg eax
sub eax, dword [esp + 0x30]
jne 0x10045b9d
mov eax, dword [esp + 0x54]
mov esi, ebx
cmp dword [eax], ebx
je 0x10045b9f
mov esi, edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
push 0
mov eax, dword [ecx + eax*4]
cmp eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x4c]
pop edx
setle dl
dec edx
mov eax, dword [ecx]
sub eax, esi
sub eax, 0x6082
imul edx, eax
dec dword [ecx]
mov dword [esp + 0x1c], edx
xor edx, edx
mov dword [esp + 0x1c], ebx
inc edx
jmp 0x10045c9d
mov dword [esp + 0x28], 0x82b3f54c
mov dword [esp + 0x14], 0x61ca7276
mov dword [esp + 0x2c], 0x12cd
mov dword [esp + 0x14], edi
mov dword [esp + 0x14], ebx
jmp 0x10045c08
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x34], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10045bfc
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov eax, dword [esp + 0x3c]
setg dl
mov dword [eax], edx
cmp edx, dword [esp + 0x28]
jne 0x10045c36
cmp dword [esp + 0x24], ebx
je 0x10045c36
xor edx, edx
inc edx
mov ecx, edx
jmp 0x10045c3b
xor edx, edx
mov ecx, ebx
inc edx
mov eax, dword [esp + 0x60]
mov dword [eax], ecx
lea eax, [ecx + 0x95dd]
cmp eax, dword [esp + 0x20]
jne 0x10045c55
mov eax, edx
cmp dword [esp + 0x28], ebx
jne 0x10045c57
mov eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x14], eax
je 0x10045c6d
mov eax, ebx
cmp dword [esp + 0x14], ebx
je 0x10045c6f
mov eax, edx
mov dword [esp + 0x14], eax
mov ecx, 0xbe4a9ff1
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x48]
cmp ecx, dword [eax]
sbb eax, eax
inc eax
mov dword [esp + 0x34], eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jle 0x10045bda
lea ecx, [esp + 0x48]
call fcn.10012eeb
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb4], 1
call fcn.10012eeb
inc dword [esp + 0x10]
xor edx, edx
inc edx
cmp dword [esp + 0x10], edx
jle 0x10045a0a
mov dword [esp + 0x24], edx
cmp dword [esp + 0x24], ebx
jl 0x10045d38
mov dword [esp + 0x30], 0xfffffff7
mov dword [esp + 0x10], ebx
jmp 0x10045d2c
mov dword [esp + 0x30], edi
mov dword [esp + 0x30], 0xfffffffa
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10045d07
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add eax, 0x5364
imul edx, eax, 0xb87b
mov eax, dword [esp + 0x60]
mov dword [eax + ecx*4], edx
mov dword [esp + 0x1c], edx
xor edx, edx
inc dword [esp + 0x10]
inc edx
cmp dword [esp + 0x10], edx
jle 0x10045cea
dec dword [esp + 0x24]
jns 0x10045cdc
lea ecx, [esp + 0x60]
call fcn.10012eeb
lea ecx, [esp + 0x54]
call fcn.10012eeb
push 0xe21
push ebx
push ebx
push 0x26fb
push ebx
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
mov dword [esp + 0x14], 0xe2799ac7
mov dword [esp + 0x14], ebx
jmp 0x10045d95
mov dword [esp + 0x30], 1
cmp dword [esp + 0x30], ebx
jne 0x10045d9c
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10045d91
push ebx
push ebx
push 0x1538
call dword [sym.imp.GDI32.dll_SelectPalette]
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe3
jg 0x10045d6b
mov ecx, dword [esp + 0xac]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret