Function at 0x402b10
Capabilities:
Create a process with modified i/o handles and window
Create process on windows
Log keystrokes via polling
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x318
mov eax, dword [0x4a8040]
xor eax, esp
mov dword [esp + 0x314], eax
push esi
push edi
push str.Russian
push 0
call dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_setlocale]
add esp, 8
lea eax, [esp + 0x288]
push str.working
push str.https:__sapphire_project.ru_partners_mod_work.php
push eax
call fcn.00401840
mov edx, 0x49ea10
lea ecx, [esp + 0x288]
call fcn.00404980
test al, al
jne 0x402b81
push 0
push 0
push str.Installer_not_working_
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push 0x49e850
push str.http:__ip_api.com_json_
lea eax, [esp + 0x1c0]
push eax
call fcn.00401840
cmp dword [esp + 0x1cc], 0xf
lea esi, [esp + 0x1b8]
mov eax, dword [esp + 0x1c8]
cmova esi, dword [esp + 0x1b8]
cmp eax, 2
jb 0x402c0e
lea edi, [esi + eax]
lea eax, [edi - 1]
sub eax, esi
push eax
push 0x52
push esi
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x402c0e
movzx ecx, byte [edx]
cmp cl, 0x52
jne 0x402be9
movzx eax, byte [edx + 1]
cmp al, 0x55
jne 0x402be9
xor eax, eax
jmp 0x402bee
sbb eax, eax
or eax, 1
test eax, eax
je 0x402cc5
inc edx
lea eax, [edi - 1]
sub eax, edx
push eax
push 0x52
push edx
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x402bd5
mov eax, dword [0x591c5c]
mov word [eax + 0x18], 0
cmp byte [eax + 0x19], 0
je 0x402e2d
cmp byte [eax + 0x18], 0
je 0x4031ec
call fcn.00401bd0
push str.valbn
mov byte [esp + 0x17], al
lea eax, [esp + 0x24c]
push str.https:__sapphire_project.ru_partners_mod_val.php
push eax
call fcn.00401840
xorps xmm0, xmm0
mov dword [esp + 0x1b0], 0
lea edx, [esp + 0x248]
movq qword [esp + 0x1a8], xmm0
lea ecx, [esp + 0x1a8]
call fcn.00402710
cmp byte [esp + 0x13], 0
je 0x402d6f
mov ecx, dword [esp + 0x1a8]
mov edx, dword [0x591c5c]
lea eax, [ecx + 0x18]
lea esi, [edx + 0x1c]
cmp esi, eax
je 0x402cba
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x402ca4
mov eax, dword [eax]
push ecx
push eax
mov ecx, esi
call fcn.00402190
mov ecx, dword [esp + 0x1a8]
mov edx, dword [0x591c5c]
lea eax, [ecx + 0x30]
lea ecx, [edx + 0x34]
jmp 0x402daa
sub edx, esi
cmp edx, 0xffffffff
je 0x402c0e
push 0x49ea48
push str.https:__sapphire_project.ru_partners_mod_setup.php
lea eax, [esp + 0xb8]
push eax
call fcn.00401840
mov edx, 0x49ea44
mov ecx, eax
call fcn.00404980
mov ecx, dword [esp + 0xc4]
mov byte [esp + 0x13], al
cmp ecx, 0xf
jbe 0x402d39
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x402d2b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x402d2b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f77f
mov al, byte [esp + 0x1b]
add esp, 8
test al, al
mov dword [esp + 0xc0], 0
mov eax, dword [0x591c5c]
mov dword [esp + 0xc4], 0xf
mov byte [esp + 0xb0], 0
je 0x402c13
mov word [eax + 0x18], 0x101
jmp 0x402c19
mov ecx, dword [0x591c5c]
mov eax, dword [esp + 0x1a8]
lea edx, [ecx + 0x1c]
cmp edx, eax
je 0x402da4
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x402d8e
mov eax, dword [eax]
push ecx
push eax
mov ecx, edx
call fcn.00402190
mov eax, dword [esp + 0x1a8]
mov ecx, dword [0x591c5c]
add eax, 0x30
add ecx, 0x34
cmp ecx, eax
je 0x402dc0
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x402db9
mov eax, dword [eax]
push edx
push eax
call fcn.00402190
lea ecx, [esp + 0x1a8]
call fcn.004047b0
mov ecx, dword [esp + 0x25c]
cmp ecx, 0xf
jbe 0x402e0a
mov edx, dword [esp + 0x248]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x402e00
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x402e00
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f77f
add esp, 8
mov eax, dword [0x591c5c]
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0xf
mov byte [esp + 0x248], 0
cmp byte [eax + 0x18], 0
je 0x4031ec
cmp byte [eax + 0x19], 0
je 0x4031f2
call fcn.00401490
push 0x40
lea eax, [esp + 0x1d8]
mov dword [esp + 0x1d4], 0x44
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x190], 0
xorps xmm0, xmm0
mov dword [esp + 0x194], 0
lea ecx, [esp + 0x180]
movaps xmmword [esp + 0x180], xmm0
push 0xa
push str.__partner
call fcn.00402380
mov ecx, dword [0x591c5c]
mov edi, bind
add ecx, 0x1c
mov eax, edi
mov edx, dword [ecx + 0x10]
sub eax, edx
cmp eax, 1
jb 0x40406b
cmp dword [ecx + 0x14], 0xf
jbe 0x402ebf
mov ecx, dword [ecx]
push 1
push 0x49eac8
push edx
push ecx
push ecx
push dword [esp + 0x20]
lea ecx, [esp + 0x38]
call fcn.004025c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x184]
call fcn.00404830
mov ecx, dword [esp + 0x34]
cmp ecx, 0xf
jbe 0x402f1d
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x402f13
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4031b9
push ecx
push edx
call fcn.0048f77f
add esp, 8
mov edx, dword [esp + 0x194]
mov eax, edx
mov ecx, dword [esp + 0x190]
sub eax, ecx
push 0x17
push str.__distr__quiet__msicl__
cmp eax, 0x17
jb 0x402f68
cmp edx, 0xf
lea esi, [esp + 0x188]
lea eax, [ecx + 0x17]
cmova esi, dword [esp + 0x188]
add esi, ecx
mov dword [esp + 0x198], eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 0x17], 0
jmp 0x402f7f
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 0x17
call fcn.00402460
mov edx, dword [esp + 0x194]
mov eax, edx
mov ecx, dword [esp + 0x190]
sub eax, ecx
push 0x19
push str.YAHOMEPAGEy_YAQSEARCHy
cmp eax, 0x19
jb 0x402fca
cmp edx, 0xf
lea esi, [esp + 0x188]
lea eax, [ecx + 0x19]
cmova esi, dword [esp + 0x188]
add esi, ecx
mov dword [esp + 0x198], eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 0x19], 0
jmp 0x402fe1
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 0x19
call fcn.00402460
mov edx, dword [esp + 0x194]
mov eax, edx
mov ecx, dword [esp + 0x190]
sub eax, ecx
push 0xc
push str.YABROWSERy
cmp eax, 0xc
jb 0x40302c
cmp edx, 0xf
lea esi, [esp + 0x188]
lea eax, [ecx + 0xc]
cmova esi, dword [esp + 0x188]
add esi, ecx
mov dword [esp + 0x198], eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 0xc], 0
jmp 0x403043
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 0xc
call fcn.00402460
mov eax, dword [0x591c5c]
add eax, 0x34
mov ecx, dword [eax + 0x10]
sub edi, ecx
cmp edi, 4
jb 0x40406b
cmp dword [eax + 0x14], 0xf
jbe 0x403061
mov eax, dword [eax]
push ecx
push eax
push 4
push str.VID
push ecx
push dword [esp + 0x20]
lea ecx, [esp + 0x38]
call fcn.004025c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x184]
call fcn.00404830
mov ecx, dword [esp + 0x34]
cmp ecx, 0xf
jbe 0x4030bf
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4030b5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4031b9
push ecx
push edx
call fcn.0048f77f
add esp, 8
mov edx, dword [esp + 0x194]
mov eax, edx
mov ecx, dword [esp + 0x190]
sub eax, ecx
cmp eax, 1
jb 0x4030fa
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x190], eax
lea eax, [esp + 0x180]
cmova eax, dword [esp + 0x180]
mov word [eax + ecx], 0x22
jmp 0x403118
push 1
push 0x49eb18
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 1
call fcn.00402460
cmp dword [esp + 0x194], 0xf
lea ecx, [esp + 0x180]
mov eax, dword [0x591c64]
cmova ecx, dword [esp + 0x180]
cmp dword [eax + 0x14], 0xf
jbe 0x40313c
mov eax, dword [eax]
lea edx, [esp + 0x140]
push edx
lea edx, [esp + 0x1d4]
push edx
push 0
push 0
push 0
push 1
push 0
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x40318b
push 0xffffffffffffffff
push dword [esp + 0x148]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [esp + 0x140]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [esp + 0x144]
call esi
mov ecx, dword [esp + 0x194]
cmp ecx, 0xf
jbe 0x4031c9
mov edx, dword [esp + 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4031bf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4031bf
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f77f
add esp, 8
mov eax, dword [0x591c5c]
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0xf
mov byte [esp + 0x180], 0
cmp byte [eax + 0x19], 0
jne 0x4031f9
mov byte [0x591cb4], 1
push 0
mov dword [esp + 0x154], 0x30
mov dword [esp + 0x158], 0x40
mov dword [esp + 0x15c], 0x404080
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [esp + 0x164], eax
xorps xmm0, xmm0
lea eax, [esp + 0x150]
mov dword [esp + 0x178], str.Sapphire_Installer
push eax
movups xmmword [esp + 0x16c], xmm0
mov dword [esp + 0x180], 0
call dword [sym.imp.USER32.dll_RegisterClassExA]
push 0
push dword [esp + 0x168]
push 0
push 0
push 5
push 5
push 0
push 0
push bind
push str.Sapphire_Installer
push dword [esp + 0x1a0]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
push 0x20
mov dword [0x4cac28], esi
call dword [sym.imp.d3d9.dll_Direct3DCreate9]
mov ecx, eax
mov dword [0x591c40], ecx
test ecx, ecx
je 0x403f74
push 0x591c3c
push 0x591c04
push 0x40
xorps xmm0, xmm0
mov dword [0x591c18], 0
push esi
push 1
movlpd qword [0x591c04], xmm0
movlpd qword [0x591c10], xmm0
mov dword [0x591c20], 0
movlpd qword [0x591c30], xmm0
mov dword [0x591c24], 1
mov dword [0x591c1c], 1
mov dword [0x591c0c], 0
mov dword [0x591c28], 1
mov dword [0x591c2c], 0x50
mov dword [0x591c38], 1
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x40]
test eax, eax
js 0x403f6e
push 0x1000
push dword [0x4cac28]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4cac28]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [0x591c50]
test eax, eax
je 0x403372
inc dword [eax + 0x374]
push 0x3e70
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
test eax, eax
je 0x40338f
push 0
mov ecx, eax
call fcn.00405540
jmp 0x403391
xor eax, eax
cmp dword [0x591c50], 0
jne 0x40339f
mov dword [0x591c50], eax
mov ecx, eax
call fcn.0040bbe0
mov edi, dword [0x591c50]
mov dword [esp + 0x18], edi
or dword [edi + 8], 0x400
mov dword [edi + 0x20], 0
mov dword [edi + 0x15a4], 0
mov dword [edi + 0x1688], 0x3f800000
mov ecx, dword [0x4cac28]
call fcn.00434ba0
mov ecx, dword [0x591c3c]
mov esi, dword [0x591c50]
push ecx
mov dword [0x591c80], ecx
or dword [esi + 0xc], 0x1008
mov dword [esi + 0xc8], str.imgui_impl_dx9
mov eax, dword [ecx]
call dword [eax + 4]
test dword [esi + 8], 0x400
je 0x403446
mov eax, dword [0x591c50]
mov dword [eax + 0x156c], 0x4348f0
mov dword [eax + 0x1570], 0x4349b0
mov dword [eax + 0x1574], 0x434a10
mov dword [eax + 0x1578], 0x434a60
mov dword [eax + 0x157c], 0x434b80
push 0x78
lea eax, [esp + 0xcc]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [edi + 0x98]
add esp, 8
mov dword [esp + 0x20], eax
mov esi, 0xffff
lea eax, [esp + 0x10]
mov dword [esp + 0x104], 0x7f7fffff
mov ecx, str.c:WindowsFontsArial.ttf
mov dword [esp + 0x110], 0x3f800000
push eax
mov word [esp + 0x118], si
mov dword [esp + 0xe4], 1
mov dword [esp + 0xe8], 1
mov dword [esp + 0x110], 1
mov byte [esp + 0xd8], 0
mov dword [esp + 0x100], 0x49eb48
mov dword [esp + 0x14], 0
call fcn.00406f40
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x4035cf
push 0x78
lea eax, [esp + 0x1d4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov word [esp + 0x224], si
lea edi, [esp + 0x2ac]
add esp, 0xc
mov byte [esp + 0x1d8], 1
cmp byte [esp + 0x21a], 0
lea esi, [esp + 0x1d0]
mov ecx, 0x1e
mov dword [esp + 0x1e4], 3
mov dword [esp + 0x1e8], 1
mov dword [esp + 0x208], 0x7f7fffff
mov dword [esp + 0x214], 0x3f800000
rep movsd dword es:[edi], dword [esi]
jne 0x403592
mov eax, 0x49eb36
mov cl, byte [eax - 1]
cmp cl, 0x2f
je 0x40356a
cmp cl, 0x5c
je 0x40356a
dec eax
cmp eax, str.c:WindowsFontsArial.ttf
ja 0x403555
movsd xmm0, qword [0x4a3608]
sub esp, 8
movsd qword [esp], xmm0
push eax
push str._s___.0fpx
lea eax, [esp + 0x2fa]
push 0x28
push eax
call fcn.00406d40
add esp, 0x18
mov eax, dword [esp + 0x14]
lea esi, [esp + 0x2a0]
mov ecx, 0x1e
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x4c], 0x41900000
call fcn.0042f640
mov esi, 0xffff
push 0x78
lea eax, [esp + 0x1d4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov word [esp + 0x224], si
lea edi, [esp + 0x44]
mov ecx, 0x1e
mov byte [esp + 0x1e4], 1
lea esi, [esp + 0x1dc]
mov dword [esp + 0x1f0], 3
mov dword [esp + 0x1f4], 1
lea eax, [esp + 0x44]
mov dword [esp + 0x214], 0x7f7fffff
add esp, 0xc
mov dword [esp + 0x214], 0x3f800000
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
push eax
mov dword [esp + 0x3c], 0x4a9098
mov dword [esp + 0x40], 0x1faf8
mov ecx, dword [ecx + 0x98]
mov dword [esp + 0x4c], 0x41800000
mov dword [esp + 0x6c], 0x4a323c
call fcn.0042f640
push 0x78
lea eax, [esp + 0x1d4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [esp + 0x1d8], 1
mov eax, 0xffff
mov dword [esp + 0x1e4], 3
mov word [esp + 0x218], ax
lea esi, [esp + 0x1d0]
lea eax, [esp + 0x38]
mov dword [esp + 0x1e8], 1
push eax
mov eax, dword [esp + 0x1c]
lea edi, [esp + 0x3c]
mov ecx, 0x1e
mov dword [esp + 0x20c], 0x7f7fffff
mov dword [esp + 0x218], 0x3f800000
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x3c], 0x4a9098
mov dword [esp + 0x40], 0x1faf8
mov dword [esp + 0x4c], 0x41800000
mov dword [esp + 0x6c], 0x4a323c
call fcn.0042f640
push 0x78
lea eax, [esp + 0x1d4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [esp + 0x1d8], 1
mov eax, 0xffff
mov dword [esp + 0x1e4], 3
mov word [esp + 0x218], ax
lea esi, [esp + 0x1d0]
lea eax, [esp + 0x38]
mov dword [esp + 0x1e8], 1
push eax
mov eax, dword [esp + 0x1c]
lea edi, [esp + 0x3c]
mov ecx, 0x1e
mov dword [esp + 0x20c], 0x7f7fffff
mov dword [esp + 0x218], 0x3f800000
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x3c], 0x4a9098
mov dword [esp + 0x40], 0x1faf8
mov dword [esp + 0x4c], 0x41a00000
mov dword [esp + 0x6c], 0x4a323c
call fcn.0042f640
mov dword [0x591c00], eax
lea esi, [esp + 0xc8]
mov ecx, 0x1e
lea edi, [esp + 0x38]
lea eax, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], 0x4a80b8
mov dword [esp + 0x40], 0xa38
mov dword [esp + 0x4c], 0x41800000
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x6c], 0x49eb48
call fcn.0042f640
lea eax, [esp + 0x38]
mov ecx, 0x1e
push eax
mov eax, dword [esp + 0x1c]
lea esi, [esp + 0xcc]
lea edi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x3c], 0x4a8af0
mov dword [esp + 0x40], 0x5a4
mov dword [esp + 0x4c], 0x41000000
mov dword [esp + 0x6c], 0x49eb48
call fcn.0042f640
xorps xmm0, xmm0
mov dword [0x591c44], eax
movaps xmmword [esp + 0x260], xmm0
movq qword [esp + 0x270], xmm0
mov dword [esp + 0x278], 0
push 1
push 0
push 0
push 0
lea eax, [esp + 0x270]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x40388b
lea eax, [esp + 0x260]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x260]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x403d75
cmp dword [0x591c78], 0
jne 0x403899
call fcn.00434790
mov esi, dword [0x591c50]
lea eax, [esp + 0x140]
push eax
push dword [0x591c98]
xorps xmm0, xmm0
mov dword [esp + 0x14], esi
movups xmmword [esp + 0x148], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x148]
sub eax, dword [esp + 0x140]
movd xmm1, eax
mov eax, dword [esp + 0x14c]
sub eax, dword [esp + 0x144]
cmp byte [0x4ca9c2], 0
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x10], xmm1
movss dword [esi + 0x14], xmm0
je 0x40394d
mov esi, dword [0x591c50]
mov ecx, dword [esi + 0x1584]
test ecx, ecx
jns 0x40392b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [esi + 0x1580]
call fcn.00423860
push 0
push 0x435480
push 0
push 0
mov dword [esi + 0x1580], 0
call dword [sym.imp.USER32.dll_EnumDisplayMonitors]
mov byte [0x4ca9c2], 0
lea eax, [esp + 0x1a8]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x1ac], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [esp + 0x1a8]
mov ecx, edi
sub ecx, dword [0x591ca0]
mov esi, dword [esp + 0x1ac]
mov edx, esi
sbb edx, dword [0x591ca4]
call fcn.004900a0
mov edx, dword [0x591cac]
mov ecx, dword [0x591ca8]
movss dword [esp + 0x14], xmm0
call fcn.004900a0
movss xmm1, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
divss xmm1, xmm0
push 0x11
movss dword [eax + 0x18], xmm1
mov dword [0x591ca0], edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [0x591ca4], esi
call edi
mov esi, dword [esp + 0xc]
shr eax, 0xf
and al, 1
push 0x10
mov byte [esi + 0x100], al
call edi
shr eax, 0xf
and al, 1
push 0x12
mov byte [esi + 0x101], al
call edi
shr eax, 0xf
and al, 1
mov byte [esi + 0x103], 0
mov byte [esi + 0x102], al
call fcn.00435020
cmp byte [esi + 0xb7], 0
je 0x403a11
or eax, 0xffffffff
jmp 0x403a1c
mov eax, dword [0x591c50]
mov eax, dword [eax + 0x1f58]
cmp dword [0x4cab78], eax
je 0x403a2e
mov dword [0x4cab78], eax
call fcn.00434ef0
call fcn.004351e0
call fcn.0040aa60
cmp dword [0x591cb0], 0
jne 0x403b93
movss xmm0, dword [0x5914d0]
xorps xmm1, xmm1
mov esi, dword [0x591c3c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x403b83
lea eax, [esp + 0x140]
xorps xmm0, xmm0
push eax
movaps xmmword [esp + 0x144], xmm0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
cmp dword [0x591cc8], 0
movd xmm0, dword [esp + 0x148]
movd xmm1, dword [esp + 0x14c]
mov edi, dword [sym.imp.d3dx9_43.dll_D3DXCreateTextureFromFileInMemoryEx]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [0x5914c8], xmm0
subss xmm0, dword [0x5914d8]
movss dword [0x5914cc], xmm1
subss xmm1, dword [0x5914dc]
mulss xmm0, dword [0x4a3578]
mulss xmm1, dword [0x4a3578]
movss dword [0x5914d0], xmm0
movss dword [0x5914d4], xmm1
jne 0x403b1b
push 0x591cc8
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push 0x200
push 0xffffffffffffffff
push 0x258
push 0x3e8
push 0xc6898
push 0x4cac30
push esi
call edi
cmp dword [0x591ce0], 0
jne 0x403b4f
push 0x591ce0
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push 0x200
push 0xffffffffffffffff
push 0x14
push 0x15
push 0xc29
push 0x4c8b90
push esi
call edi
cmp dword [0x591cd0], 0
jne 0x403b83
push 0x591cd0
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push 0x200
push 0xffffffffffffffff
push 0x15
push 0x55
push 0x1201
push 0x4c97c0
push esi
call edi
mov esi, dword [esp + 0x18]
mov dword [0x591cb0], 1
jmp 0x403bb1
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x98]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx]
call fcn.00413330
call fcn.0043dde0
call fcn.00413480
call fcn.0040cfa0
mov eax, dword [0x591c3c]
push 0
mov ecx, dword [eax]
push ecx
mov dword [esp], 0x3f800000
push 0
push 3
push 0
push 0
push eax
call dword [ecx + 0xac]
mov eax, dword [0x591c3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa4]
test eax, eax
js 0x403c17
call fcn.0040d410
mov eax, dword [0x591c50]
xor ecx, ecx
mov eax, dword [eax + 0x1dd8]
mov eax, dword [eax]
sub eax, 0xffffff80
cmp byte [eax], cl
cmovne ecx, eax
call fcn.00434050
mov eax, dword [0x591c3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa8]
test dword [esi + 8], 0x400
je 0x403d3a
call fcn.0041a8d0
mov esi, dword [0x591c50]
mov edx, 1
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x158c]
lea edi, [esi + 0x1594]
mov dword [esp + 0x1c], edi
cmp eax, edx
jle 0x403cbe
mov ecx, 4
mov dword [esp + 0xc], ecx
nop word [eax + eax]
mov eax, dword [edi]
mov edi, dword [ecx + eax]
test dword [edi + 4], 0x400
jne 0x403ca2
mov eax, dword [esi + 0x1554]
test eax, eax
je 0x403c88
push 0
push edi
call eax
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x1578]
test eax, eax
je 0x403ca2
push 0
push edi
call eax
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x158c]
inc edx
mov edi, dword [esp + 0x1c]
add ecx, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
cmp edx, eax
jl 0x403c60
jmp 0x403cc2
mov dword [esp + 0x1c], edi
mov edx, 1
mov dword [esp + 0xc], edx
cmp eax, edx
jle 0x403d3a
mov ecx, 4
mov dword [esp + 0x14], ecx
nop dword [eax + eax]
mov eax, dword [edi]
mov edi, dword [ecx + eax]
test dword [edi + 4], 0x400
jne 0x403d22
mov eax, dword [esi + 0x1558]
test eax, eax
je 0x403d08
push 0
push edi
call eax
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, dword [esp + 0xc]
mov eax, dword [esi + 0x157c]
test eax, eax
je 0x403d22
push 0
push edi
call eax
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
inc edx
add ecx, 4
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], ecx
cmp edx, dword [esi + 0x158c]
jl 0x403ce0
mov ecx, dword [0x591c3c]
push 0
push 0
push 0
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x44]
cmp eax, 0x88760868
jne 0x403d6c
mov eax, dword [0x591c3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp eax, 0x88760869
jne 0x403d6c
call fcn.004026b0
cmp byte [0x4cac0c], 0
je 0x403d85
cmp dword [esp + 0x264], 0x12
jne 0x403850
jmp 0x403d90
mov dword [esp + 0x264], 0x12
call fcn.0041ae20
call fcn.004347f0
mov ecx, dword [0x591c80]
test ecx, ecx
je 0x403db4
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c80], 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [sym.imp.USER32.dll_UnregisterClassA]
push eax
push str.ImGui_Platform
call edi
mov eax, dword [0x591c8c]
test eax, eax
je 0x403dda
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [0x591c50]
xorps xmm0, xmm0
mov ecx, esi
mov dword [0x591c8c], 0
mov dword [0x591c90], 0
mov dword [0x591c94], 0
mov dword [0x591c98], 0
movlpd qword [0x591ca0], xmm0
movlpd qword [0x591ca8], xmm0
mov dword [0x4cab78], 9
mov byte [0x591c88], 0
mov byte [0x4ca9c1], 1
call fcn.0040be40
cmp dword [0x591c50], esi
jne 0x403e4c
mov dword [0x591c50], 0
test esi, esi
je 0x403e70
mov ecx, esi
call fcn.00423ea0
mov eax, dword [0x591c50]
test eax, eax
je 0x403e66
dec dword [eax + 0x374]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, dword [0x591c3c]
test ecx, ecx
je 0x403e8a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c3c], 0
mov ecx, dword [0x591c40]
test ecx, ecx
je 0x403ea4
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c40], 0
push dword [0x4cac28]
call dword [sym.imp.USER32.dll_DestroyWindow]
push dword [esp + 0x164]
push dword [esp + 0x17c]
call edi
mov ecx, dword [esp + 0x1cc]
cmp ecx, 0xf
jbe 0x403efc
mov edx, dword [esp + 0x1b8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403ef2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404040
push ecx
push edx
call fcn.0048f77f
add esp, 8
mov ecx, dword [esp + 0x29c]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0xf
mov byte [esp + 0x1b8], 0
cmp ecx, 0xf
jbe 0x403f56
mov edx, dword [esp + 0x288]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403f4c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404040
push ecx
push edx
call fcn.0048f77f
add esp, 8
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x314]
xor ecx, esp
call fcn.0048f4f0
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0x591c40]
mov edx, dword [0x591c3c]
test edx, edx
je 0x403f94
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [0x591c40]
mov dword [0x591c3c], 0
test ecx, ecx
je 0x403fa8
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c40], 0
push dword [esp + 0x164]
push dword [esp + 0x17c]
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov ecx, dword [esp + 0x1cc]
cmp ecx, 0xf
jbe 0x403ff4
mov edx, dword [esp + 0x1b8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403fea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404040
push ecx
push edx
call fcn.0048f77f
add esp, 8
mov ecx, dword [esp + 0x29c]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0xf
mov byte [esp + 0x1b8], 0
cmp ecx, 0xf
jbe 0x404050
mov edx, dword [esp + 0x288]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404046
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x404046
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f77f
add esp, 8
mov ecx, dword [esp + 0x31c]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.0048f4f0
mov esp, ebp
pop ebp
ret 0x10
call fcn.00401310
int3