Function at 0x402c50
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.00404ac0
test al, al
jne 0x402cc1
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 0x402d4e
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 0x402d4e
movzx ecx, byte [edx]
cmp cl, 0x52
jne 0x402d29
movzx eax, byte [edx + 1]
cmp al, 0x55
jne 0x402d29
xor eax, eax
jmp 0x402d2e
sbb eax, eax
or eax, 1
test eax, eax
je 0x402e05
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 0x402d15
mov eax, dword [0x591c64]
mov word [eax + 0x18], 0
cmp byte [eax + 0x19], 0
je 0x402f6d
cmp byte [eax + 0x18], 0
je 0x40332c
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.00402850
cmp byte [esp + 0x13], 0
je 0x402eaf
mov ecx, dword [esp + 0x1a8]
mov edx, dword [0x591c64]
lea eax, [ecx + 0x18]
lea esi, [edx + 0x1c]
cmp esi, eax
je 0x402dfa
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x402de4
mov eax, dword [eax]
push ecx
push eax
mov ecx, esi
call fcn.00402190
mov ecx, dword [esp + 0x1a8]
mov edx, dword [0x591c64]
lea eax, [ecx + 0x30]
lea ecx, [edx + 0x34]
jmp 0x402eea
sub edx, esi
cmp edx, 0xffffffff
je 0x402d4e
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.00404ac0
mov ecx, dword [esp + 0xc4]
mov byte [esp + 0x13], al
cmp ecx, 0xf
jbe 0x402e79
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x402e6b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x402e6b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f7d7
mov al, byte [esp + 0x1b]
add esp, 8
test al, al
mov dword [esp + 0xc0], 0
mov eax, dword [0x591c64]
mov dword [esp + 0xc4], 0xf
mov byte [esp + 0xb0], 0
je 0x402d53
mov word [eax + 0x18], 0x101
jmp 0x402d59
mov ecx, dword [0x591c64]
mov eax, dword [esp + 0x1a8]
lea edx, [ecx + 0x1c]
cmp edx, eax
je 0x402ee4
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x402ece
mov eax, dword [eax]
push ecx
push eax
mov ecx, edx
call fcn.00402190
mov eax, dword [esp + 0x1a8]
mov ecx, dword [0x591c64]
add eax, 0x30
add ecx, 0x34
cmp ecx, eax
je 0x402f00
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x402ef9
mov eax, dword [eax]
push edx
push eax
call fcn.00402190
lea ecx, [esp + 0x1a8]
call fcn.004048f0
mov ecx, dword [esp + 0x25c]
cmp ecx, 0xf
jbe 0x402f4a
mov edx, dword [esp + 0x248]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x402f40
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x402f40
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f7d7
add esp, 8
mov eax, dword [0x591c64]
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0xf
mov byte [esp + 0x248], 0
cmp byte [eax + 0x18], 0
je 0x40332c
cmp byte [eax + 0x19], 0
je 0x403332
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 [0x591c64]
mov edi, bind
add ecx, 0x1c
mov eax, edi
mov edx, dword [ecx + 0x10]
sub eax, edx
cmp eax, 1
jb 0x4041ab
cmp dword [ecx + 0x14], 0xf
jbe 0x402fff
mov ecx, dword [ecx]
push 1
push 0x49eac8
push edx
push ecx
push ecx
push dword [esp + 0x20]
lea ecx, [esp + 0x38]
call fcn.00402700
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x184]
call fcn.00404970
mov ecx, dword [esp + 0x34]
cmp ecx, 0xf
jbe 0x40305d
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403053
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4032f9
push ecx
push edx
call fcn.0048f7d7
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 0x4030a8
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 0x4030bf
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 0x17
call fcn.004025a0
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 0x40310a
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 0x403121
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 0x19
call fcn.004025a0
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 0x40316c
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 0x403183
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 0xc
call fcn.004025a0
mov eax, dword [0x591c64]
add eax, 0x34
mov ecx, dword [eax + 0x10]
sub edi, ecx
cmp edi, 4
jb 0x4041ab
cmp dword [eax + 0x14], 0xf
jbe 0x4031a1
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.00402700
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x184]
call fcn.00404970
mov ecx, dword [esp + 0x34]
cmp ecx, 0xf
jbe 0x4031ff
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4031f5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4032f9
push ecx
push edx
call fcn.0048f7d7
add esp, 8
mov edx, dword [esp + 0x194]
mov eax, edx
mov ecx, dword [esp + 0x190]
sub eax, ecx
cmp eax, 1
jb 0x40323a
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 0x403258
push 1
push 0x49eb18
mov byte [esp + 0x14], 0
lea ecx, [esp + 0x188]
push dword [esp + 0x14]
push 1
call fcn.004025a0
cmp dword [esp + 0x194], 0xf
lea ecx, [esp + 0x180]
mov eax, dword [0x591c6c]
cmova ecx, dword [esp + 0x180]
cmp dword [eax + 0x14], 0xf
jbe 0x40327c
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 0x4032cb
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 0x403309
mov edx, dword [esp + 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4032ff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4032ff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f7d7
add esp, 8
mov eax, dword [0x591c64]
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0xf
mov byte [esp + 0x180], 0
cmp byte [eax + 0x19], 0
jne 0x403339
mov byte [0x591cbc], 1
push 0
mov dword [esp + 0x154], 0x30
mov dword [esp + 0x158], 0x40
mov dword [esp + 0x15c], 0x4041c0
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 [0x591c48], ecx
test ecx, ecx
je 0x4040b4
push 0x591c44
push 0x591c0c
push 0x40
xorps xmm0, xmm0
mov dword [0x591c20], 0
push esi
push 1
movlpd qword [0x591c0c], xmm0
movlpd qword [0x591c18], xmm0
mov dword [0x591c28], 0
movlpd qword [0x591c38], xmm0
mov dword [0x591c2c], 1
mov dword [0x591c24], 1
mov dword [0x591c14], 0
mov dword [0x591c30], 1
mov dword [0x591c34], 0x50
mov dword [0x591c40], 1
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x40]
test eax, eax
js 0x4040ae
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 [0x591c58]
test eax, eax
je 0x4034b2
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 0x4034cf
push 0
mov ecx, eax
call fcn.00405540
jmp 0x4034d1
xor eax, eax
cmp dword [0x591c58], 0
jne 0x4034df
mov dword [0x591c58], eax
mov ecx, eax
call fcn.0040bbe0
mov edi, dword [0x591c58]
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 [0x591c44]
mov esi, dword [0x591c58]
push ecx
mov dword [0x591c88], 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 0x403586
mov eax, dword [0x591c58]
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 0x40370f
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 0x4036d2
mov eax, 0x49eb36
mov cl, byte [eax - 1]
cmp cl, 0x2f
je 0x4036aa
cmp cl, 0x5c
je 0x4036aa
dec eax
cmp eax, str.c:WindowsFontsArial.ttf
ja 0x403695
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 [0x591c08], 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 [0x591c4c], 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 0x4039cb
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 0x403eb5
cmp dword [0x591c80], 0
jne 0x4039d9
call fcn.00434790
mov esi, dword [0x591c58]
lea eax, [esp + 0x140]
push eax
push dword [0x591ca0]
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 0x403a8d
mov esi, dword [0x591c58]
mov ecx, dword [esi + 0x1584]
test ecx, ecx
jns 0x403a6b
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 [0x591ca8]
mov esi, dword [esp + 0x1ac]
mov edx, esi
sbb edx, dword [0x591cac]
call fcn.004900f0
mov edx, dword [0x591cb4]
mov ecx, dword [0x591cb0]
movss dword [esp + 0x14], xmm0
call fcn.004900f0
movss xmm1, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
divss xmm1, xmm0
push 0x11
movss dword [eax + 0x18], xmm1
mov dword [0x591ca8], edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [0x591cac], 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 0x403b51
or eax, 0xffffffff
jmp 0x403b5c
mov eax, dword [0x591c58]
mov eax, dword [eax + 0x1f58]
cmp dword [0x4cab78], eax
je 0x403b6e
mov dword [0x4cab78], eax
call fcn.00434ef0
call fcn.004351e0
call fcn.0040aa60
cmp dword [0x591cb8], 0
jne 0x403cd3
movss xmm0, dword [0x5914d0]
xorps xmm1, xmm1
mov esi, dword [0x591c44]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x403cc3
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 [0x591cd0], 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 0x403c5b
push 0x591cd0
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 [0x591ce8], 0
jne 0x403c8f
push 0x591ce8
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 [0x591cd8], 0
jne 0x403cc3
push 0x591cd8
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 [0x591cb8], 1
jmp 0x403cf1
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 [0x591c44]
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 [0x591c44]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa4]
test eax, eax
js 0x403d57
call fcn.0040d410
mov eax, dword [0x591c58]
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 [0x591c44]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa8]
test dword [esi + 8], 0x400
je 0x403e7a
call fcn.0041a8d0
mov esi, dword [0x591c58]
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 0x403dfe
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 0x403de2
mov eax, dword [esi + 0x1554]
test eax, eax
je 0x403dc8
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 0x403de2
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 0x403da0
jmp 0x403e02
mov dword [esp + 0x1c], edi
mov edx, 1
mov dword [esp + 0xc], edx
cmp eax, edx
jle 0x403e7a
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 0x403e62
mov eax, dword [esi + 0x1558]
test eax, eax
je 0x403e48
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 0x403e62
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 0x403e20
mov ecx, dword [0x591c44]
push 0
push 0
push 0
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x44]
cmp eax, 0x88760868
jne 0x403eac
mov eax, dword [0x591c44]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp eax, 0x88760869
jne 0x403eac
call fcn.004027f0
cmp byte [0x4cac0c], 0
je 0x403ec5
cmp dword [esp + 0x264], 0x12
jne 0x403990
jmp 0x403ed0
mov dword [esp + 0x264], 0x12
call fcn.0041ae20
call fcn.004347f0
mov ecx, dword [0x591c88]
test ecx, ecx
je 0x403ef4
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c88], 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 [0x591c94]
test eax, eax
je 0x403f1a
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [0x591c58]
xorps xmm0, xmm0
mov ecx, esi
mov dword [0x591c94], 0
mov dword [0x591c98], 0
mov dword [0x591c9c], 0
mov dword [0x591ca0], 0
movlpd qword [0x591ca8], xmm0
movlpd qword [0x591cb0], xmm0
mov dword [0x4cab78], 9
mov byte [0x591c90], 0
mov byte [0x4ca9c1], 1
call fcn.0040be40
cmp dword [0x591c58], esi
jne 0x403f8c
mov dword [0x591c58], 0
test esi, esi
je 0x403fb0
mov ecx, esi
call fcn.00423ea0
mov eax, dword [0x591c58]
test eax, eax
je 0x403fa6
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 [0x591c44]
test ecx, ecx
je 0x403fca
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c44], 0
mov ecx, dword [0x591c48]
test ecx, ecx
je 0x403fe4
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c48], 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 0x40403c
mov edx, dword [esp + 0x1b8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404032
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404180
push ecx
push edx
call fcn.0048f7d7
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 0x404096
mov edx, dword [esp + 0x288]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40408c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404180
push ecx
push edx
call fcn.0048f7d7
add esp, 8
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x314]
xor ecx, esp
call fcn.0048f548
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0x591c48]
mov edx, dword [0x591c44]
test edx, edx
je 0x4040d4
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [0x591c48]
mov dword [0x591c44], 0
test ecx, ecx
je 0x4040e8
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x591c48], 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 0x404134
mov edx, dword [esp + 0x1b8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40412a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404180
push ecx
push edx
call fcn.0048f7d7
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 0x404190
mov edx, dword [esp + 0x288]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404186
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x404186
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0048f7d7
add esp, 8
mov ecx, dword [esp + 0x31c]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.0048f548
mov esp, ebp
pop ebp
ret 0x10
call fcn.00401310
int3