Function at 0x4679d4
Capabilities:
Identify system language via api
Link many functions at runtime

Disassembly:
push edi
push esi
push ebx
sub esp, 0x154
call fcn.00467030
call fcn.00466ac0
test eax, eax
je 0x4679fa
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
call fcn.00466e44
call fcn.00403588
call fcn.00468eb0
movzx eax, byte [0x87232c]
test eax, eax
jle 0x467a37
cmp eax, 0x14
jge 0x467a37
push 0x87d4a8
push 0x87c7f0
call fcn.00409070
mov eax, 0xffffffff
add esp, 0x15c
pop ebx
pop esi
pop edi
ret
call fcn.00468d20
movsx eax, al
test eax, eax
je 0x467a52
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
push 0x87d4e8
push dword [0x87233c]
call fcn.0046f350
add esp, 8
test eax, eax
jne 0x467a89
mov eax, 0x87d4d4
mov edx, 0x87d4e8
xor ecx, ecx
call fcn.00465729
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
push 0x87d4f0
push dword [0x87233c]
call fcn.0046f350
add esp, 8
test eax, eax
je 0x468652
push 0x87d4f8
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x872510], eax
test eax, eax
je 0x46860d
push 1
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x872508], eax
push 2
push dword [0x872510]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x87250c], eax
cmp dword [0x872508], 0
je 0x4685f6
cmp dword [0x87250c], 0
je 0x4685df
push 0x87d558
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x872524], eax
test eax, eax
je 0x46859a
push 1
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x872514], eax
push 2
push dword [0x872524]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x872518], eax
push 3
push dword [0x872524]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x87251c], eax
push 4
push dword [0x872524]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x872520], eax
cmp dword [0x872514], 0
je 0x468583
cmp dword [0x872518], 0
je 0x46856c
cmp dword [0x87251c], 0
je 0x468555
cmp dword [0x872520], 0
je 0x46853e
cmp byte [0x59b718], 1
je 0x468418
cmp byte [0x872004], 1
je 0x468418
cmp byte [0x872008], 1
je 0x468418
cmp byte [0x87200c], 1
je 0x468418
call fcn.0046436c
test eax, eax
jne 0x4681e0
cmp byte [0x59b718], 1
je 0x4683fc
cmp byte [0x872004], 1
je 0x4683fc
cmp byte [0x872008], 1
je 0x4683fc
cmp byte [0x87200c], 1
je 0x4683fc
movsx eax, byte [0x8722c8]
test eax, eax
jne 0x467c5a
mov eax, 2
mov edx, 0x660b60
call fcn.004653b1
movsx eax, al
test eax, eax
je 0x467c3e
mov eax, 0x660a40
call fcn.00410fec
call fcn.00411390
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
mov eax, dword [0x8729d0]
test eax, eax
je 0x467c5a
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x8729d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movsx eax, byte [0x8722c0]
test eax, eax
jne 0x4683e3
call fcn.0046585c
test eax, eax
je 0x467c81
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
call fcn.004686ac
call fcn.00465334
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [0x8722b0]
call fcn.00467290
cmp eax, 0xffffffff
je 0x467ca5
cmp eax, 4
jle 0x467cc0
push 0x87d720
push 0
call fcn.00409070
mov eax, 0xffffffff
add esp, 0x15c
pop ebx
pop esi
pop edi
ret
call fcn.004670d4
test eax, eax
jle 0x467cd8
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
call fcn.0046bc94
call fcn.0046bc24
call fcn.0046bcf4
call fcn.00468cc8
movsx eax, al
test eax, eax
je 0x467d02
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
call fcn.00463e84
test eax, eax
jne 0x4681e0
movsx eax, byte [0x8722e0]
test eax, eax
je 0x467d2b
movzx eax, byte [0x87232c]
cmp eax, 0x41
jl 0x467d2b
call fcn.00573729
mov edi, dword [0x87279c]
mov ebx, dword [edi + 0xc]
mov dword [0x8723b4], ebx
mov ecx, dword [edi + 0x10]
mov dword [0x8723b8], ecx
mov esi, ecx
movsx eax, byte [0x872280]
test eax, eax
je 0x467d7b
mov edx, dword [0x87239c]
mov dword [edi + 0xc], edx
mov ecx, dword [0x87279c]
mov eax, dword [0x8723a0]
mov dword [ecx + 0x10], eax
mov ebx, dword [ecx + 0xc]
mov dword [0x8723bc], ebx
mov dword [0x8723c0], eax
mov esi, eax
mov ecx, eax
jmp 0x467d92
mov dword [0x8723c0], ecx
mov dword [0x8723bc], ebx
mov edx, dword [0x87239c]
mov eax, dword [0x8723a0]
cmp ebx, edx
jg 0x467d9a
cmp esi, eax
jle 0x467dbe
mov ebx, edx
shr ebx, 0x1f
add edx, ebx
mov ebx, edx
sar ebx, 1
mov dword [0x8723c4], ebx
mov edx, eax
shr edx, 0x1f
add eax, edx
mov esi, eax
sar esi, 1
mov dword [0x8723c8], esi
jmp 0x467dca
mov dword [0x8723c8], ecx
mov dword [0x8723c4], ebx
mov ecx, dword [0x87223c]
lea edx, [ebx + ebx]
add edx, edx
cmp ebx, 0x2000
jg 0x4683bc
test ecx, ecx
je 0x4683a5
mov eax, edx
imul eax, esi
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.0046f46f
add esp, 8
mov edi, eax
test edi, edi
je 0x46837c
mov dword [0x87223c], edi
push 0x660800
mov ecx, dword [0x87279c]
call fcn.004677c4
mov dword [0x872404], 1
push 0x660800
push 0x660a40
push dword [0x8722b4]
push dword [0x8722b0]
mov ecx, dword [0x87279c]
call fcn.00457784
test eax, eax
jne 0x467e69
push 0x87d72c
push 0x87c7f0
call fcn.00409070
mov eax, 0xffffffff
add esp, 0x15c
pop ebx
pop esi
pop edi
ret
push 0
call dword [sym.imp.USER32.dll_ShowCursor]
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
movsx eax, byte [0x872280]
test eax, eax
je 0x467e96
mov eax, dword [0x87279c]
push 0
push dword [eax + 0x2a4]
call sub.IMM32.dll_ImmAssociateContext
call fcn.0046bff0
movsx eax, byte [0x872280]
test eax, eax
je 0x467ead
mov byte [0x8722cc], 0
movsx eax, byte [0x8722cc]
test eax, eax
jne 0x467ec2
mov eax, dword [0x8723a4]
mov dword [0x872394], eax
movsx eax, byte [0x8722d0]
test eax, eax
jne 0x468370
call fcn.004678e4
call fcn.0046891c
push dword [0x8722b0]
call fcn.0046c028
pop ecx
movsx eax, al
test eax, eax
je 0x467ef7
mov byte [0x8722e8], 1
jmp 0x467efe
mov byte [0x8722e8], 0
mov dword [0x8725a8], 0
push 0x872364
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
lea esi, [esp + 0xc]
mov edi, 0x660c80
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x467f28
lea edi, [esp + 0xc]
mov edx, 0x87d750
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x467f45
movzx eax, byte [0x87232c]
cmp eax, 0x41
jl 0x467f62
mov esi, 1
jmp 0x467f64
xor esi, esi
xor eax, eax
mov byte [esp + 0x11c], al
mov byte [esp + 0x11d], al
movsx edx, byte [0x8722c0]
test edx, edx
jne 0x467f91
movsx eax, byte [0x872308]
test eax, eax
jne 0x467f91
mov eax, 1
jmp 0x467f93
xor eax, eax
neg eax
inc eax
cmp edx, 1
je 0x468357
xor edx, edx
neg edx
inc edx
imul eax, edx
movsx eax, al
cmp byte [0x8722c8], 1
je 0x467fb7
test eax, eax
jne 0x467fd9
mov byte [esp + 0x144], 0
mov byte [esp + 0x145], 1
mov byte [esp + 0x146], 2
mov byte [esp + 0x147], 3
jmp 0x467ff9
mov byte [esp + 0x144], 0
mov byte [esp + 0x145], 1
mov byte [esp + 0x146], 3
mov byte [esp + 0x147], 2
xor ebx, ebx
jmp 0x467ffe
inc ebx
movsx eax, bl
cmp eax, 4
jge 0x468350
movsx eax, byte [esp + eax + 0x144]
test eax, eax
je 0x468333
cmp eax, 1
je 0x468055
cmp eax, 2
jne 0x46803a
lea eax, [esp + 0x114]
lea edx, [esp + 0xc]
call fcn.00440858
test eax, eax
jne 0x468069
jmp 0x467ffd
cmp eax, 3
jne 0x467ffd
lea eax, [esp + 0xc]
call fcn.00440834
movsx eax, al
test eax, eax
jne 0x468326
jmp 0x467ffd
lea eax, [esp + 0x114]
lea edx, [esp + 0xc]
call fcn.00440b48
test eax, eax
je 0x467ffd
test eax, eax
jle 0x46831f
mov eax, 1
test eax, eax
je 0x46807f
mov esi, 1
test esi, esi
jne 0x4682da
movzx eax, byte [0x87232c]
cmp eax, 0x50
jl 0x46817f
call fcn.0046cec4
test eax, eax
jne 0x4680ac
push 0x5e
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
jmp 0x4680b6
push 0x5e
call dword [0x872064]
mov ebx, eax
call fcn.0046cec4
test eax, eax
jne 0x4680c9
push 0x5f
call dword [sym.imp.USER32.dll_GetSystemMetrics]
jmp 0x4680d1
push 0x5f
call dword [0x872064]
test ebx, ebx
je 0x4680e9
test ebx, 0x80
je 0x4680e9
mov byte [0x8724ec], 1
mov dword [0x8724f0], eax
push 0x87d760
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x8724e8], eax
test eax, eax
je 0x468166
push 0x87d76c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x8724d4], eax
push 0x87d780
push dword [0x8724e8]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x8724d8], eax
push 0x87d794
push dword [0x8724e8]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x8724dc], eax
push 0x87d7b0
push dword [0x8724e8]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x8724e0], eax
push 0x87d7cc
push dword [0x8724e8]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x8724e4], eax
mov edx, dword [0x8724dc]
test edx, edx
je 0x46817f
mov eax, dword [0x87279c]
push 0
push dword [eax + 0x2a4]
call edx
call fcn.0046c5b8
movsx eax, byte [0x871ff4]
test eax, eax
jne 0x46819a
movsx eax, byte [0x871ff8]
test eax, eax
je 0x46819f
call fcn.0046606c
call fcn.0046ba54
movsx eax, al
test eax, eax
je 0x4681bf
call fcn.00410de4
mov eax, 1
add esp, 0x154
pop ebx
pop esi
pop edi
ret
call fcn.0046a7b8
test eax, eax
je 0x4681d7
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
call fcn.0046b6a0
test eax, eax
je 0x4681ef
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
call fcn.0046a798
movsx eax, byte [0x8722f0]
call fcn.00458041
cmp eax, 1
je 0x468298
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x872374], eax
mov dword [0x872378], eax
mov dword [0x87237c], eax
mov dword [0x872380], eax
call fcn.00469d58
movsx eax, byte [0x871ff4]
test eax, eax
jne 0x46823e
movsx eax, byte [0x871ff8]
test eax, eax
je 0x468251
call fcn.004090b0
cmp eax, 1
je 0x46825d
cmp eax, 0xffffffff
je 0x468677
xor eax, eax
add esp, 0x154
pop ebx
pop esi
pop edi
ret
xor eax, eax
mov byte [0x872040], al
mov byte [0x59b768], 1
mov byte [0x871ff4], al
mov byte [0x871ff8], al
push 0x87cb3c
push 0x8782b0
call fcn.0046d180
push 0x87cb3c
push 0x8782b0
call fcn.00409070
add esp, 0x10
jmp 0x468251
mov eax, dword [0x87279c]
push 5
push dword [eax + 0x2a4]
call dword [sym.imp.USER32.dll_ShowWindow]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ebx, eax
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, ebx
cmp eax, 0x5dc
jae 0x468209
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, ebx
cmp eax, 0x5dc
jb 0x4682c6
jmp 0x468209
call fcn.0046c7f4
movsx eax, byte [0x872468]
test eax, eax
je 0x468087
mov eax, 1
mov byte [0x871ff4], al
xor ecx, ecx
mov byte [0x871ff8], cl
movsx edx, byte [0x59b768]
cmp edx, 1
jle 0x46830e
mov edx, eax
mov byte [0x59b768], dl
mov byte [0x87203c], cl
jmp 0x468087
xor eax, eax
jmp 0x468076
mov byte [esp + 0x11c], 1
jmp 0x468069
lea eax, [esp + 0x114]
lea edx, [esp + 0xc]
call fcn.00440ba0
test eax, eax
jne 0x468069
jmp 0x467ffd
xor eax, eax
jmp 0x468069
movsx edx, byte [0x87230c]
test edx, edx
jne 0x467f9f
mov edx, 1
jmp 0x467fa1
mov byte [0x8723b0], 0
jmp 0x467ed1
push esi
push ebx
push 0
push 0x879420
push 0x8782b0
call fcn.0046d180
push 0
push 1
push 0x1965e
call fcn.0046c28c
add esp, 0x20
jmp 0x467e06
mov eax, edx
imul eax, esi
lea edx, [edx + eax + 4]
push edx
call fcn.0046f20c
pop ecx
mov edi, eax
jmp 0x467dfe
push esi
push ebx
push 0x8793f8
push 0x8782b0
call fcn.00409070
push 1
push 0x186aa
call fcn.0046c2e8
add esp, 0x18
xor edi, edi
jmp 0x467e06
mov esi, 0x660da0
mov edi, 0x660c80
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4683ed
jmp 0x467c81
cmp dword [0x872538], 0
jne 0x467bff
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret
push 0x87d618
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x872538], eax
test eax, eax
je 0x4684f9
push 0x87d624
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x872528], eax
push 0x87d63c
push dword [0x872538]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x87252c], eax
push 0x87d64c
push dword [0x872538]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x872530], eax
push 0x87d668
push dword [0x872538]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x872534], eax
test eax, eax
je 0x4684e5
cmp dword [0x87252c], 0
je 0x4684d1
cmp dword [0x872530], 0
je 0x4684bd
cmp dword [0x872534], 0
jne 0x467bbe
xor eax, eax
push eax
push eax
push 0x87d67c
push eax
call fcn.00409070
add esp, 0x10
jmp 0x467bbe
xor eax, eax
push eax
push eax
push 0x87d6c4
push eax
call fcn.00409070
add esp, 0x10
jmp 0x468499
xor eax, eax
push eax
push eax
push 0x87d6a0
push eax
call fcn.00409070
add esp, 0x10
jmp 0x468490
xor eax, eax
push eax
push eax
push 0x87d67c
push eax
call fcn.00409070
add esp, 0x10
jmp 0x468487
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
xor ecx, ecx
lea edx, [esp + 0x148]
push ecx
push ecx
push edx
push 0x400
push ebx
push ecx
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push dword [esp + 0x148]
push ebx
push 0x87d6f0
push 0x8782b0
call fcn.00409070
add esp, 0x10
jmp 0x467bbe
xor eax, eax
push eax
push eax
push 0x87d5c8
push eax
call fcn.00409070
add esp, 0x10
jmp 0x467b8a
xor eax, eax
push eax
push eax
push 0x87d5a8
push eax
call fcn.00409070
add esp, 0x10
jmp 0x467b7d
xor eax, eax
push eax
push eax
push 0x87d588
push eax
call fcn.00409070
add esp, 0x10
jmp 0x467b70
xor eax, eax
push eax
push eax
push 0x87d564
push eax
call fcn.00409070
add esp, 0x10
jmp 0x467b63
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
xor ecx, ecx
lea edx, [esp + 0x150]
push ecx
push ecx
push edx
push 0x400
push ebx
push ecx
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push dword [esp + 0x150]
push ebx
push 0x87d5e8
push 0x8782b0
call fcn.00409070
add esp, 0x10
jmp 0x467b8a
xor eax, eax
push eax
push eax
push 0x87d504
push eax
call fcn.00409070
add esp, 0x10
jmp 0x467af7
xor eax, eax
push eax
push eax
push 0x87d504
push eax
call fcn.00409070
add esp, 0x10
jmp 0x467aea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
xor ecx, ecx
lea edx, [esp + 0x14c]
push ecx
push ecx
push edx
push 0x400
push ebx
push ecx
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push dword [esp + 0x14c]
push ebx
push 0x87d528
push 0x8782b0
call fcn.00409070
add esp, 0x10
jmp 0x467af7
mov dword [0x59b778], 0x8791cc
push 1
push 0x186a0
call fcn.0046c2e8
mov eax, 0xffffffff
add esp, 0x15c
pop ebx
pop esi
pop edi
ret
xor edx, edx
mov byte [0x872040], dl
mov ecx, 1
mov byte [0x59b768], cl
mov byte [0x871ff4], dl
mov byte [0x871ff8], dl
mov byte [0x87260c], cl
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop esi
pop edi
ret