Function at 0x452038
Capabilities:
Create process on windows
Create thread
Identify system language via api

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x154
call fcn.004513a0
call fcn.004510bc
call fcn.004032f8
call fcn.00453640
movzx eax, byte [0x7d3fdc]
test eax, eax
jle 0x452085
cmp eax, 0x14
jge 0x452085
push 0x7dd940
push 0x7dd3a4
call fcn.0040af10
mov eax, 0xffffffff
add esp, 0x15c
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.004534b0
movsx eax, al
test eax, eax
je 0x4520a1
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
push 0x7dd980
push dword [0x7d3fec]
call fcn.00458f20
add esp, 8
test eax, eax
jne 0x4521d8
mov eax, dword [0x5625f8]
mov dword [esp + 0x11c], eax
mov edx, dword [0x562600]
mov dword [esp + 0x124], edx
mov ecx, dword [0x562604]
mov dword [esp + 0x128], ecx
mov ebx, dword [0x562608]
mov dword [esp + 0x12c], ebx
mov ebp, dword [0x56260c]
mov dword [esp + 0x130], ebp
mov esi, dword [0x562610]
mov dword [esp + 0x134], esi
mov edi, dword [0x562614]
mov dword [esp + 0x138], edi
mov eax, dword [0x562618]
mov dword [esp + 0x13c], eax
mov eax, dword [0x56261c]
mov dword [esp + 0x140], eax
mov eax, dword [0x562620]
mov dword [esp + 0x144], eax
mov eax, dword [0x562624]
mov dword [esp + 0x148], eax
mov eax, dword [0x562628]
mov dword [esp + 0x14c], eax
mov eax, dword [0x56262c]
mov dword [esp + 0x150], eax
mov dword [esp + 0x118], 0x3c
mov dword [esp + 0x120], 0
mov eax, dword [0x7d4338]
test eax, eax
je 0x45218e
mov eax, dword [eax + 0x2a4]
test eax, eax
je 0x45218e
mov dword [esp + 0x120], eax
mov dword [esp + 0x134], 1
mov dword [esp + 0x11c], 0x40
mov dword [esp + 0x128], 0x7dd96c
mov dword [esp + 0x12c], 0x7dd980
lea eax, [esp + 0x118]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
push 0x7dd988
push dword [0x7d3fec]
call fcn.00458f20
add esp, 8
test eax, eax
je 0x4529f8
call fcn.0044f258
test eax, eax
je 0x45220c
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
movsx eax, byte [0x7d3f88]
test eax, eax
jne 0x4529df
call fcn.00450484
test eax, eax
je 0x452234
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.00452a50
call fcn.004502fc
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.00453458
movsx eax, al
test eax, eax
je 0x452260
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.0044edb0
test eax, eax
je 0x452279
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [0x7d4338]
mov ebp, dword [edx + 0xc]
mov dword [0x7d4094], ebp
mov ecx, dword [edx + 0x10]
mov dword [0x7d4098], ecx
mov ebx, ecx
movsx eax, byte [0x7d3f48]
test eax, eax
je 0x4522ca
mov eax, dword [0x7d407c]
mov dword [edx + 0xc], eax
mov ecx, dword [0x7d4338]
mov edx, dword [0x7d4080]
mov dword [ecx + 0x10], edx
mov ebp, dword [ecx + 0xc]
mov dword [0x7d409c], ebp
mov dword [0x7d40a0], edx
mov ebx, edx
mov ecx, edx
jmp 0x4522e1
mov dword [0x7d40a0], ecx
mov dword [0x7d409c], ebp
mov eax, dword [0x7d407c]
mov edx, dword [0x7d4080]
cmp ebp, eax
jg 0x4522e9
cmp ebx, edx
jle 0x45230d
mov ebp, eax
shr ebp, 0x1f
add eax, ebp
mov ebp, eax
sar ebp, 1
mov dword [0x7d40a4], ebp
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebx, edx
sar ebx, 1
mov dword [0x7d40a8], ebx
jmp 0x452319
mov dword [0x7d40a8], ecx
mov dword [0x7d40a4], ebp
mov ecx, dword [0x7d3eb4]
lea edx, [ebp + ebp]
add edx, edx
cmp ebp, 0x2000
jg 0x4529b8
test ecx, ecx
je 0x4529a1
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.00459128
add esp, 8
mov esi, eax
test esi, esi
je 0x452978
mov dword [0x7d3eb4], esi
push 0x64e7e0
mov ecx, dword [0x7d4338]
call fcn.00451e28
mov dword [0x7d40e4], 1
push 0x64e7e0
push 0x64ea20
push dword [0x7d3f7c]
push dword [0x7d3f78]
mov ecx, dword [0x7d4338]
call fcn.004488b8
test eax, eax
jne 0x4523bd
push 0x7dd990
push 0x7dd3a4
call fcn.0040af10
add esp, 8
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
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 [0x7d3f48]
test eax, eax
je 0x4523ea
mov eax, dword [0x7d4338]
push 0
push dword [eax + 0x2a4]
call sub.IMM32.dll_ImmAssociateContext
call fcn.00456504
movsx eax, byte [0x7d3f48]
test eax, eax
je 0x452401
mov byte [0x7d3f94], 0
push 0
call fcn.004556c0
pop ecx
test eax, eax
jge 0x452414
mov byte [0x7d3f94], 0
movsx eax, byte [0x7d3f94]
test eax, eax
jne 0x452429
mov eax, dword [0x7d4084]
mov dword [0x7d4074], eax
movsx eax, byte [0x7d3f98]
test eax, eax
jne 0x45296c
call fcn.00451f48
call fcn.00452d14
movsx eax, byte [0x7d3f9c]
test eax, eax
jne 0x45294a
push dword [0x7d3f78]
call fcn.0045653c
pop ecx
movsx eax, al
test eax, eax
je 0x45246d
mov byte [0x7d3fa4], 1
jmp 0x452474
mov byte [0x7d3fa4], 0
mov dword [0x7d41d8], 0
push 0x7d4044
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movsx eax, byte [0x7d3e18]
test eax, eax
je 0x4524a5
call fcn.00450a74
call fcn.00455fb8
movsx eax, al
test eax, eax
jne 0x452600
movsx eax, byte [0x5866f4]
test eax, eax
jle 0x452508
xor ebx, ebx
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebx*4 + 0x651da0], eax
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebx*4 + 0x651ea0], eax
xor eax, eax
push eax
push 1
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebx*4 + 0x651fa0], eax
inc ebx
movsx eax, byte [0x5866f4]
cmp ebx, eax
jl 0x4524c2
test eax, eax
jle 0x452555
xor ebp, ebp
xor ebx, ebx
mov dword [ebx + 0x6504a0], ebp
xor ecx, ecx
lea edx, [ebx + 0x6504a0]
lea eax, [esp + 0x114]
push eax
push ecx
push edx
push 0x44a81c
push ecx
push ecx
call fcn.0045b6aa
add esp, 0x18
mov dword [ebp*4 + 0x6503a0], eax
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
add ebx, 0x64
inc ebp
movsx eax, byte [0x5866f4]
cmp ebp, eax
jl 0x452510
call fcn.0045036c
xor eax, eax
push eax
push eax
push 0x417ee0
call fcn.0045a0f8
add esp, 0xc
movsx edx, byte [0x5866f8]
dec edx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
movsx eax, byte [0x7d3f9c]
test eax, eax
jne 0x45268d
movsx eax, byte [0x7d3fc4]
test eax, eax
je 0x4525a6
xor eax, eax
push eax
push eax
push 0x44a7c0
call fcn.0045a0f8
add esp, 0xc
movsx eax, byte [0x7d3fac]
call fcn.004490f5
cmp eax, 1
je 0x45264b
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x7d4054], eax
mov dword [0x7d4058], eax
mov dword [0x7d405c], eax
mov dword [0x7d4060], eax
movsx eax, byte [0x7d3e18]
test eax, eax
je 0x4525f3
call fcn.00406aa0
cmp eax, 1
je 0x452615
cmp eax, 0xffffffff
je 0x452a1e
xor eax, eax
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.00410c00
mov eax, 1
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
mov byte [0x7d3e48], al
mov byte [0x586730], 1
mov byte [0x7d3e18], al
push 0x7dd224
push 0x7d98a0
call fcn.00432de0
push 0x7dd224
push 0x7d98a0
call fcn.0040af10
add esp, 0x10
jmp 0x4525f3
mov eax, dword [0x7d4338]
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 0x4525bb
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, ebx
cmp eax, 0x5dc
jb 0x452679
jmp 0x4525bb
lea esi, [esp + 0x10]
mov edi, 0x7dd9b4
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x452696
mov edx, dword [0x7d4100]
lea eax, [esp + 0x10]
call fcn.0045157c
mov esi, eax
test esi, esi
je 0x452943
lea edx, [esp + 0x10]
mov dword [esp + 0x110], edx
movsx ecx, byte [esp + 0x10]
test ecx, ecx
je 0x45293c
xor ebp, ebp
lea ebx, [esp + 0x10]
movsx ecx, byte [ebx]
cmp ecx, 0x2f
je 0x4526f1
movzx ecx, cl
movzx ebx, byte [ecx + 0x5860a0]
inc ebx
movsx edi, bl
add ebp, edi
jmp 0x4526f6
lea edx, [ebx + 1]
xor ebp, ebp
lea ebx, [edx + ebp]
movsx ecx, byte [ebx]
test ecx, ecx
jne 0x4526da
mov dword [esp + 0x110], edx
push 0x38
call fcn.004032d4
pop ecx
mov ebx, eax
test ebx, ebx
je 0x452926
lea edx, [ebp + 1]
push edx
call fcn.00458ddc
pop ecx
mov dword [ebx + 0x14], eax
test eax, eax
je 0x452910
push ebp
mov edx, dword [esp + 0x114]
push edx
push eax
call dword [0x5a344c]
mov ecx, dword [ebx + 0x14]
xor edx, edx
mov byte [ecx + ebp], dl
push ebp
mov edi, dword [esp + 0x120]
push edi
push edx
call fcn.00474fa8
add esp, 0x18
and eax, 0x7fffffff
xor ecx, ecx
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x18], ebp
mov byte [ebx + 0x30], cl
mov ebp, 0x3b9ac9ff
mov dword [ebx + 0x28], ebp
mov dword [ebx + 0x2c], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov eax, esi
mov edx, ebx
call fcn.00451614
push ebx
call fcn.00455d00
pop ecx
mov ebp, eax
test ebx, ebx
je 0x4523ad
test ebp, ebp
je 0x4523ad
mov esi, ebp
mov edi, 0x7dd9bc
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4527a4
mov byte [ebp + 0x105], 2
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x7d4568]
mov dword [eax*4 + 0x77f2c0], ebx
mov byte [eax + 0x7803c0], 5
mov dword [eax*4 + 0x7818c0], 2
mov dword [eax*4 + 0x7829c0], 0
inc eax
cdq
xor eax, edx
sub eax, edx
and eax, 0x3ff
xor eax, edx
sub eax, edx
mov dword [0x7d4568], eax
cmp eax, dword [0x7d4564]
je 0x4528fc
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x7d4568]
mov dword [ecx*4 + 0x77f2c0], ebx
mov byte [ecx + 0x7803c0], 1
mov esi, dword [ecx*4 + 0x7807c0]
mov edi, ebp
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45283c
mov eax, dword [0x7d4568]
mov dword [eax*4 + 0x7829c0], 0
inc eax
cdq
xor eax, edx
sub eax, edx
and eax, 0x3ff
xor eax, edx
sub eax, edx
mov dword [0x7d4568], eax
cmp eax, dword [0x7d4564]
je 0x4528e8
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x7d4568]
mov dword [eax*4 + 0x77f2c0], ebx
mov byte [eax + 0x7803c0], 2
xor ebx, ebx
mov dword [eax*4 + 0x7818c0], ebx
mov dword [eax*4 + 0x7829c0], ebx
inc eax
cdq
xor eax, edx
sub eax, edx
and eax, 0x3ff
xor eax, edx
sub eax, edx
mov dword [0x7d4568], eax
cmp eax, dword [0x7d4564]
je 0x4528d7
push 0x7d431c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45258a
push 0
push 0x1ae78
call fcn.004567fc
add esp, 8
jmp 0x4528c7
push 0
push 0x1ae78
call fcn.004567fc
add esp, 8
jmp 0x452872
push 0
push 0x1ae78
call fcn.004567fc
add esp, 8
jmp 0x452809
push 1
push 0x186aa
call fcn.004567fc
add esp, 8
xor ebx, ebx
jmp 0x452784
push 1
push 0x186aa
call fcn.004567fc
add esp, 8
xor ebx, ebx
jmp 0x452784
xor ebp, ebp
jmp 0x452707
xor ebx, ebx
jmp 0x452784
call fcn.00455798
cmp eax, 1
je 0x452960
mov byte [0x7d3f9c], 0
jmp 0x452451
mov byte [0x7d3f9c], 1
jmp 0x452451
mov byte [0x7d4090], 0
jmp 0x452438
push ebx
push ebp
push 0
push 0x7dda78
push 0x7d98a0
call fcn.00432de0
push 0
push 1
push 0x1965e
call fcn.004567a0
add esp, 0x20
jmp 0x452356
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
call fcn.00458ddc
pop ecx
mov esi, eax
jmp 0x45234e
push ebx
push ebp
push 0x7dda50
push 0x7d98a0
call fcn.0040af10
push 1
push 0x186aa
call fcn.004567fc
add esp, 0x18
xor esi, esi
jmp 0x452356
mov esi, 0x64ec60
mov edi, 0x64eb40
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x4529e9
jmp 0x452234
mov dword [0x586744], 0x7da15c
push 1
push 0x186a0
call fcn.004567fc
mov eax, 0xffffffff
add esp, 0x15c
pop ebx
pop ebp
pop esi
pop edi
ret
xor edx, edx
mov byte [0x7d3e48], dl
mov ecx, 1
mov byte [0x586730], cl
mov byte [0x7d3e18], dl
mov byte [0x7d4238], cl
mov eax, 0xffffffff
add esp, 0x154
pop ebx
pop ebp
pop esi
pop edi
ret