Function at 0x45f250
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Enumerate gui resources
Get memory capacity
Inspect load icon resource
Log keystrokes via polling
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd74
mov eax, dword [0x4d3100]
xor eax, esp
mov dword [esp + 0xd70], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0xc], eax
mov eax, 0x20
push 0x7fe
mov word [esp + 0x74], ax
lea eax, [esp + 0x76]
push 0
push eax
mov dword [esp + 0x20], ebx
call fcn.0049cbc0
add esp, 0xc
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x45e010
call fcn.0049543a
add esp, 4
xor esi, esi
mov dword [0x56eb68], esi
mov dword [0x56d34c], esi
push 0x4c79dc
push 2
call fcn.004973aa
push esi
call fcn.0049758e
add esp, 0xc
push eax
call fcn.004944de
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
add esp, 4
jmp 0x45f2f0
xor edx, edx
mov dword [0x4e4e18], 0xfffffffe
mov ecx, str.update12
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f32c
test eax, eax
je 0x45f320
cmp eax, 2
jne 0x45f336
mov dword [0x4e4e18], 1
jmp 0x45f336
mov dword [0x4e4e18], 0
jmp 0x45f336
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update11
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f368
test eax, eax
je 0x45f35c
cmp eax, 2
jne 0x45f372
mov dword [0x4e4e18], 1
jmp 0x45f372
mov dword [0x4e4e18], 0
jmp 0x45f372
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update10
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f3a4
test eax, eax
je 0x45f398
cmp eax, 2
jne 0x45f3ae
mov dword [0x4e4e18], 1
jmp 0x45f3ae
mov dword [0x4e4e18], 0
jmp 0x45f3ae
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update9
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f3e0
test eax, eax
je 0x45f3d4
cmp eax, 2
jne 0x45f3ea
mov dword [0x4e4e18], 1
jmp 0x45f3ea
mov dword [0x4e4e18], 0
jmp 0x45f3ea
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update8
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f41c
test eax, eax
je 0x45f410
cmp eax, 2
jne 0x45f426
mov dword [0x4e4e18], 1
jmp 0x45f426
mov dword [0x4e4e18], 0
jmp 0x45f426
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update7
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f458
test eax, eax
je 0x45f44c
cmp eax, 2
jne 0x45f462
mov dword [0x4e4e18], 1
jmp 0x45f462
mov dword [0x4e4e18], 0
jmp 0x45f462
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update6
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f494
test eax, eax
je 0x45f488
cmp eax, 2
jne 0x45f49e
mov dword [0x4e4e18], 1
jmp 0x45f49e
mov dword [0x4e4e18], 0
jmp 0x45f49e
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update5
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f4d0
test eax, eax
je 0x45f4c4
cmp eax, 2
jne 0x45f4da
mov dword [0x4e4e18], 1
jmp 0x45f4da
mov dword [0x4e4e18], 0
jmp 0x45f4da
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update4
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f50c
test eax, eax
je 0x45f500
cmp eax, 2
jne 0x45f516
mov dword [0x4e4e18], 1
jmp 0x45f516
mov dword [0x4e4e18], 0
jmp 0x45f516
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update3
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f548
test eax, eax
je 0x45f53c
cmp eax, 2
jne 0x45f552
mov dword [0x4e4e18], 1
jmp 0x45f552
mov dword [0x4e4e18], 0
jmp 0x45f552
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update2
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f584
test eax, eax
je 0x45f578
cmp eax, 2
jne 0x45f58e
mov dword [0x4e4e18], 1
jmp 0x45f58e
mov dword [0x4e4e18], 0
jmp 0x45f58e
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update1
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f5c0
test eax, eax
je 0x45f5b4
cmp eax, 2
jne 0x45f5ca
mov dword [0x4e4e18], 1
jmp 0x45f5ca
mov dword [0x4e4e18], 0
jmp 0x45f5ca
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.update
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f5fc
test eax, eax
je 0x45f5f0
cmp eax, 2
jne 0x45f606
mov dword [0x4e4e18], 1
jmp 0x45f606
mov dword [0x4e4e18], 0
jmp 0x45f606
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata12
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f638
test eax, eax
je 0x45f62c
cmp eax, 2
jne 0x45f642
mov dword [0x4e4e18], 1
jmp 0x45f642
mov dword [0x4e4e18], 0
jmp 0x45f642
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata11
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f674
test eax, eax
je 0x45f668
cmp eax, 2
jne 0x45f67e
mov dword [0x4e4e18], 1
jmp 0x45f67e
mov dword [0x4e4e18], 0
jmp 0x45f67e
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata10
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f6b0
test eax, eax
je 0x45f6a4
cmp eax, 2
jne 0x45f6ba
mov dword [0x4e4e18], 1
jmp 0x45f6ba
mov dword [0x4e4e18], 0
jmp 0x45f6ba
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata9
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f6ec
test eax, eax
je 0x45f6e0
cmp eax, 2
jne 0x45f6f6
mov dword [0x4e4e18], 1
jmp 0x45f6f6
mov dword [0x4e4e18], 0
jmp 0x45f6f6
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata8
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f728
test eax, eax
je 0x45f71c
cmp eax, 2
jne 0x45f732
mov dword [0x4e4e18], 1
jmp 0x45f732
mov dword [0x4e4e18], 0
jmp 0x45f732
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata7
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f764
test eax, eax
je 0x45f758
cmp eax, 2
jne 0x45f76e
mov dword [0x4e4e18], 1
jmp 0x45f76e
mov dword [0x4e4e18], 0
jmp 0x45f76e
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata6
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f7a0
test eax, eax
je 0x45f794
cmp eax, 2
jne 0x45f7aa
mov dword [0x4e4e18], 1
jmp 0x45f7aa
mov dword [0x4e4e18], 0
jmp 0x45f7aa
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata5
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f7dc
test eax, eax
je 0x45f7d0
cmp eax, 2
jne 0x45f7e6
mov dword [0x4e4e18], 1
jmp 0x45f7e6
mov dword [0x4e4e18], 0
jmp 0x45f7e6
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata4
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f818
test eax, eax
je 0x45f80c
cmp eax, 2
jne 0x45f822
mov dword [0x4e4e18], 1
jmp 0x45f822
mov dword [0x4e4e18], 0
jmp 0x45f822
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata3
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f854
test eax, eax
je 0x45f848
cmp eax, 2
jne 0x45f85e
mov dword [0x4e4e18], 1
jmp 0x45f85e
mov dword [0x4e4e18], 0
jmp 0x45f85e
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata2
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f890
test eax, eax
je 0x45f884
cmp eax, 2
jne 0x45f89a
mov dword [0x4e4e18], 1
jmp 0x45f89a
mov dword [0x4e4e18], 0
jmp 0x45f89a
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata1
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f8cc
test eax, eax
je 0x45f8c0
cmp eax, 2
jne 0x45f8d6
mov dword [0x4e4e18], 1
jmp 0x45f8d6
mov dword [0x4e4e18], 0
jmp 0x45f8d6
mov dword [0x4e4e18], 0xfffffffe
xor edx, edx
mov ecx, str.fastdata
call fcn.00480f10
cmp eax, 0xfffffffe
je 0x45f8fd
test eax, eax
je 0x45f9a2
cmp eax, 2
je 0x45f8fd
cmp dword [0x4e4e18], 0xfffffffe
jne 0x45f907
mov dword [0x4e4e18], 1
call fcn.004872d0
test eax, eax
je 0x4608d4
push 0x800
lea eax, [esp + 0x74]
push eax
push 1
push ebx
call dword [sym.imp.USER32.dll_LoadStringA]
cmp byte [esp + 0x70], 0x20
jne 0x45f950
mov ax, word [0x4c7af4]
movq xmm0, qword [str.majiro.env]
mov word [esp + 0x78], ax
mov al, byte [0x4c7af6]
movq qword [esp + 0x70], xmm0
mov byte [esp + 0x7a], al
cmp dword [0x53bf90], 0
jne 0x45f977
push 0x575f18
call edi
push 0x4801a0
call fcn.0049543a
add esp, 4
mov dword [0x53bf90], 1
lea edx, [esp + 0xc70]
lea ecx, [esp + 0x70]
call fcn.00482070
test eax, eax
jne 0x45f9b1
test esi, esi
jne 0x46089d
call fcn.0045e9c0
mov esi, 1
jmp 0x45f2f0
mov dword [0x4e4e18], 0
jmp 0x45f907
lea ecx, [esp + 0x70]
call fcn.00487e50
call fcn.0045e1c0
call fcn.004568b0
push eax
push 0x4c7944
push 0x56d658
call fcn.00493964
add esp, 0xc
push 0
push 0x45f090
call dword [sym.imp.USER32.dll_EnumWindows]
call fcn.004568b0
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x4608b1
call fcn.00456860
mov edi, eax
call fcn.00456810
push 0
mov esi, eax
lea eax, [esp + 0x874]
push 0x4c3c38
push eax
call fcn.00493964
add esp, 0xc
lea eax, [esp + 0xa70]
mov edx, edi
mov ecx, esi
push 0x200
push eax
lea eax, [esp + 0x878]
push eax
push str.MULTIPLE_EXEC
call fcn.0047e280
lea eax, [esp + 0xa80]
push eax
call fcn.00494176
mov ebx, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0x14
mov edi, 1
test eax, eax
jne 0x45fac1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x4608b8
push 0
push str.AbnormalTerminateFlg
call fcn.00456860
mov esi, eax
call fcn.00456810
mov edx, esi
mov ecx, eax
call fcn.0047e4f0
add esp, 8
test eax, eax
je 0x45fac1
cmp dword [0x4e4e18], edi
je 0x45fac1
push 0x34
push 0x4c7bb4
push 0x4c7bc8
push 0
call ebx
mov ecx, dword [0x56d34c]
cmp eax, 6
cmove ecx, edi
mov dword [0x56d34c], ecx
call fcn.00456860
mov esi, eax
call fcn.00456810
push 1
push 0x4c6694
push str.AbnormalTerminateFlg
mov edx, esi
mov ecx, eax
call fcn.0047e3b0
add esp, 0xc
call fcn.00458990
call fcn.004577f0
mov ecx, eax
call fcn.00484dd0
cmp dword [0x4e4e18], edi
je 0x45fb03
call fcn.00491730
xor edx, edx
mov ecx, str.scenario12
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario11
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario10
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario9
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario8
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario7
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario6
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario5
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario4
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario3
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario2
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario1
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario
call fcn.00480f10
mov ecx, str.data12
call fcn.0045bad0
xor edx, edx
mov ecx, str.data12
call fcn.00480f10
mov ecx, str.data11
call fcn.0045bad0
xor edx, edx
mov ecx, str.data11
call fcn.00480f10
mov ecx, str.data10
call fcn.0045bad0
xor edx, edx
mov ecx, str.data10
call fcn.00480f10
mov ecx, str.data9
call fcn.0045bad0
xor edx, edx
mov ecx, str.data9
call fcn.00480f10
mov ecx, str.data8
call fcn.0045bad0
xor edx, edx
mov ecx, str.data8
call fcn.00480f10
mov ecx, str.data7
call fcn.0045bad0
xor edx, edx
mov ecx, str.data7
call fcn.00480f10
mov ecx, str.data6
call fcn.0045bad0
xor edx, edx
mov ecx, str.data6
call fcn.00480f10
mov ecx, str.data5
call fcn.0045bad0
xor edx, edx
mov ecx, str.data5
call fcn.00480f10
mov ecx, str.data4
call fcn.0045bad0
xor edx, edx
mov ecx, str.data4
call fcn.00480f10
mov ecx, str.data3
call fcn.0045bad0
xor edx, edx
mov ecx, str.data3
call fcn.00480f10
mov ecx, str.data2
call fcn.0045bad0
xor edx, edx
mov ecx, str.data2
call fcn.00480f10
mov ecx, str.data1
call fcn.0045bad0
xor edx, edx
mov ecx, str.data1
call fcn.00480f10
mov ecx, str.data
call fcn.0045bad0
xor edx, edx
mov ecx, str.data
call fcn.00480f10
mov ecx, str.slowdata12
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata12
call fcn.00480f10
mov ecx, str.slowdata11
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata11
call fcn.00480f10
mov ecx, str.slowdata10
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata10
call fcn.00480f10
mov ecx, str.slowdata9
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata9
call fcn.00480f10
mov ecx, str.slowdata8
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata8
call fcn.00480f10
mov ecx, str.slowdata7
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata7
call fcn.00480f10
mov ecx, str.slowdata6
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata6
call fcn.00480f10
mov ecx, str.slowdata5
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata5
call fcn.00480f10
mov ecx, str.slowdata4
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata4
call fcn.00480f10
mov ecx, str.slowdata3
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata3
call fcn.00480f10
mov ecx, str.slowdata2
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata2
call fcn.00480f10
mov ecx, str.slowdata1
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata1
call fcn.00480f10
mov ecx, str.slowdata
call fcn.0045bad0
xor edx, edx
mov ecx, str.slowdata
call fcn.00480f10
mov ecx, str.stream12
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream12
call fcn.00480f10
mov ecx, str.stream11
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream11
call fcn.00480f10
mov ecx, str.stream10
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream10
call fcn.00480f10
mov ecx, str.stream9
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream9
call fcn.00480f10
mov ecx, str.stream8
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream8
call fcn.00480f10
mov ecx, str.stream7
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream7
call fcn.00480f10
mov ecx, str.stream6
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream6
call fcn.00480f10
mov ecx, str.stream5
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream5
call fcn.00480f10
mov ecx, str.stream4
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream4
call fcn.00480f10
mov ecx, str.stream3
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream3
call fcn.00480f10
mov ecx, str.stream2
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream2
call fcn.00480f10
mov ecx, str.stream1
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream1
call fcn.00480f10
mov ecx, str.stream
call fcn.0045bad0
mov edx, edi
mov ecx, str.stream
call fcn.00480f10
mov ecx, str.voice12
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice12
call fcn.00480f10
mov ecx, str.voice11
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice11
call fcn.00480f10
mov ecx, str.voice10
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice10
call fcn.00480f10
mov ecx, str.voice9
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice9
call fcn.00480f10
mov ecx, str.voice8
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice8
call fcn.00480f10
mov ecx, str.voice7
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice7
call fcn.00480f10
mov ecx, str.voice6
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice6
call fcn.00480f10
mov ecx, str.voice5
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice5
call fcn.00480f10
mov ecx, str.voice4
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice4
call fcn.00480f10
mov ecx, str.voice3
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice3
call fcn.00480f10
mov ecx, str.voice2
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice2
call fcn.00480f10
mov ecx, str.voice1
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice1
call fcn.00480f10
mov ecx, str.voice
call fcn.0045bad0
mov edx, edi
mov ecx, str.voice
call fcn.00480f10
call fcn.00458520
xor edx, edx
mov ecx, eax
call fcn.00480f10
mov eax, dword [0x53c5e8]
test eax, eax
je 0x460044
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x53c5e8], 0
call fcn.0047ec40
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov dword [0x53c0b0], 0x45a7e0
call fcn.0045edb0
call fcn.00456a20
mov edi, eax
call fcn.00456a60
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
push 0x4c7e80
push eax
mov dword [esp + 0x20], 0xb
mov dword [esp + 0x24], 0x47eae0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x4c3d40
push str.moviecursor.cur
mov dword [esp + 0x34], eax
call fcn.00494396
add esp, 8
test eax, eax
je 0x4600d9
push eax
call fcn.00494b54
add esp, 4
push 0x10
push 0x20
push 0x20
push 2
push str.moviecursor.cur
push 0
call dword [sym.imp.USER32.dll_LoadImageA]
jmp 0x4600e6
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0045f140
mov dword [esp + 0x38], eax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x40], str.MAJIRO_EXEC_CLASS
call dword [sym.imp.USER32.dll_RegisterClassA]
mov ecx, 0x45d5b0
call fcn.0047eb80
xor ecx, ecx
call fcn.0047f820
push 0x4860f0
call fcn.0049543a
add esp, 4
call fcn.0044f000
cmp dword [0x4e4e68], 0xffffffff
jne 0x460160
push 0x14
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je 0x460160
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x14
call esi
push 0
push 2
push 0
push 0x14
call esi
call fcn.004577f0
push dword [esp + 0x10]
neg eax
lea ecx, [esp + 0x44]
push edi
sbb esi, esi
and esi, 0x40000
add esi, 0xcb0000
mov edx, esi
call fcn.00459530
add esp, 8
mov dword [esp + 0x10], eax
call fcn.00458570
test eax, eax
jne 0x4601b3
cmp dword [0x4e4e18], 1
je 0x4601b3
push 4
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x4c]
add ecx, 5
add eax, ecx
mov dword [esp + 0x4c], eax
call fcn.0046fef0
push 0
push dword [esp + 0x18]
push 0
push 0
test eax, eax
je 0x4601d8
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
jmp 0x4601e6
push 0
push 0
push 0x80000000
push 0x80000000
push esi
call fcn.004568b0
push eax
push str.MAJIRO_EXEC_CLASS
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, eax
push edi
mov dword [0x53bb48], edi
call dword [sym.imp.USER32.dll_SetClipboardViewer]
mov dword [0x53b368], eax
mov dword [0x537b38], 1
call fcn.0045f210
test eax, eax
je 0x46024b
mov edx, dword [esp + 0x14]
mov ecx, edi
call fcn.0045eaa0
mov eax, dword [0x56eb68]
test eax, eax
je 0x46024b
push 0x4c7ea0
push 0xff
push 0x401
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
call fcn.00457320
call fcn.004573d0
call fcn.00456bc0
call fcn.00456c40
call fcn.00456cd0
call fcn.00456d30
call fcn.00456d90
call fcn.00457490
call fcn.004574f0
call fcn.00457860
call fcn.00457610
call fcn.00457790
or ecx, 0xffffffff
call fcn.00456470
cmp dword [0x4e4e18], 1
mov esi, dword [sym.imp.USER32.dll_GetMenu]
jne 0x4602bd
mov eax, dword [0x539344]
test eax, eax
jne 0x4602af
push dword [0x53bb48]
call esi
push 0
push 0x9c65
push eax
call dword [sym.imp.USER32.dll_DeleteMenu]
call fcn.00457db0
call fcn.004573d0
call fcn.0048f7d0
mov ecx, dword [esp + 0xc]
call fcn.00438730
call fcn.004577c0
test eax, eax
je 0x4602f9
push dword [0x53bb48]
call esi
push 0
push dword [0x53bb48]
mov dword [0x539344], eax
call dword [sym.imp.USER32.dll_SetMenu]
push dword [ebp + 0x14]
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0045b2f0
call fcn.00457c90
call fcn.00458090
mov dword [0x53c0c4], eax
call fcn.00457820
test eax, eax
je 0x460366
call fcn.00457c90
mov dword [0x53c0e8], eax
call fcn.00458200
mov dword [0x4e5484], eax
mov dword [0x4e5474], eax
mov dword [0x4e5450], eax
call fcn.00458350
mov dword [0x4e544c], eax
mov dword [0x4e5464], eax
call fcn.00458570
test eax, eax
jne 0x4603ac
cmp dword [0x4e4e18], 1
je 0x4603ac
mov eax, 1
jmp 0x4603ae
mov dword [0x53c0e8], 0
call fcn.00458200
mov dword [0x4e5484], eax
mov dword [0x4e5474], eax
mov dword [0x4e5450], eax
call fcn.00458350
mov dword [0x4e544c], eax
mov dword [0x4e5464], eax
call fcn.00458570
test eax, eax
jne 0x4603ac
cmp dword [0x4e4e18], 1
je 0x4603ac
mov eax, 1
jmp 0x4603ae
xor eax, eax
push eax
call fcn.00456a60
mov esi, eax
call fcn.00456a20
mov edx, esi
mov ecx, eax
call fcn.00484ce0
mov eax, dword [0x56c618]
add esp, 4
mov dword [0x53c0cc], eax
mov eax, dword [0x56ea60]
mov dword [0x53c0c0], eax
mov dword [0x53c0fc], 0x45a7c0
mov dword [0x53c0f8], 0x4588a0
mov dword [0x53c0d8], 0x45a7c0
mov dword [0x53c0e0], 0x45a7d0
call fcn.0047ecd0
call fcn.00456b00
mov ecx, dword [0x4e547c]
test eax, eax
mov edx, 0x71
cmovne ecx, edx
push edi
mov dword [0x4e547c], ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [0x56c724]
call fcn.0045a7e0
mov esi, dword [sym.imp.USER32.dll_SystemParametersInfoA]
add esp, 4
push 0
push 0x56ea64
push 0
push 0x10
call esi
push 1
push 0
push 0
push 0x11
call esi
push 0
push 0x64
push 0x10002
push edi
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.00456aa0
test eax, eax
je 0x460479
mov eax, 0x101
mov word [0x4e4f38], ax
call fcn.0047ec40
call fcn.004584a0
test eax, eax
je 0x46049c
call fcn.00456a60
mov esi, eax
call fcn.00456a20
mov edx, esi
mov ecx, eax
call fcn.00486c10
call fcn.0045e6b0
call fcn.0046df20
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [esp + 0x5c]
mov ecx, 0x40000000
cmp eax, 0xffffffff
cmove eax, ecx
shr eax, 1
cmp eax, 0x1000000
jae 0x4604d0
mov eax, 0x1000000
jmp 0x4604da
mov ecx, 0x10000000
cmp eax, ecx
cmova eax, ecx
mov dword [0x56de58], eax
mov dword [0x5379b4], eax
call fcn.00456a60
mov esi, eax
call fcn.00456a20
push 1
push 0x20
mov edx, esi
mov ecx, eax
call fcn.00486160
mov esi, eax
mov ecx, dword [esi + 8]
imul ecx, dword [esi + 4]
push ecx
push 0
push dword [esi + 0x2c]
call fcn.0049cbc0
add esp, 0x14
mov ecx, esi
call fcn.0047f820
mov dword [0x53c0ac], 1
call fcn.004839b0
call fcn.00484120
mov ecx, dword [0x53c0bc]
call fcn.00484270
call fcn.00483af0
call fcn.004508a0
call fcn.004584d0
mov ecx, eax
call fcn.0045cff0
call fcn.004584d0
mov ecx, eax
call fcn.0043a4e0
push 0xc
mov edx, str._init_GLOBAL
call fcn.00486e50
add esp, 4
not eax
mov ecx, eax
call fcn.0043aa90
mov ecx, dword [0x58c460]
mov dword [ecx], eax
test eax, eax
jne 0x4605b6
push str._start.msj_
call fcn.00485990
add esp, 4
call fcn.00458b50
call fcn.00459460
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov ecx, dword [esp + 0xd7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00493955
mov esp, ebp
pop ebp
ret 0x10
mov dword [0x53c848], 1
call fcn.00443c00
call fcn.00479650
mov eax, dword [0x53c124]
test eax, eax
je 0x4605e1
mov dword [eax + 0xc], 1
mov eax, dword [eax + 0x38]
test eax, eax
jne 0x4605d3
mov eax, dword [0x4e67f8]
test eax, eax
je 0x4605fe
lea ebx, [ebx]
mov dword [eax + 4], 1
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4605f0
mov dword [0x53c848], 0
call fcn.004577f0
test eax, eax
mov eax, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 1
jne 0x46062c
call eax
mov esi, eax
call fcn.00456a60
cmp eax, esi
jle 0x46063e
mov esi, 1
jmp 0x460642
call eax
mov esi, eax
call fcn.00456a60
cmp eax, esi
jle 0x46063e
call fcn.00484e30
mov esi, dword [esp + 0x10]
call fcn.004575e0
test eax, eax
jne 0x460660
test esi, esi
je 0x460660
call fcn.0046fef0
test eax, eax
je 0x460660
mov ecx, esi
call fcn.004844a0
nop
call fcn.004508a0
xor edi, edi
cmp byte [0x56c620], 0
jne 0x4606a7
call fcn.004584d0
mov ecx, eax
call fcn.0045cff0
call fcn.004584d0
mov ecx, eax
call fcn.0043a4e0
mov esi, eax
cmp dword [esi + 0x94], 0xffffffff
jne 0x4606e3
push str.start.mjs
push 0x4c5414
call fcn.00439f00
add esp, 8
jmp 0x4606e3
mov ecx, 0x56c620
call fcn.0043a4e0
mov esi, eax
cmp dword [esi + 0x94], 0xffffffff
jne 0x4606ce
push 0x56c620
push 0x4c5414
call fcn.00439f00
add esp, 8
xor ecx, ecx
mov al, byte [ecx + 0x4c3c36]
lea ecx, [ecx + 1]
mov byte [ecx + 0x56c61f], al
test al, al
jne 0x4606d0
mov eax, dword [esi + 0xa4]
mov ecx, dword [0x58c460]
add eax, dword [esi + 0x94]
mov dword [ecx], eax
test edi, edi
je 0x460745
call fcn.00475000
mov edx, dword [0x58c460]
mov esi, dword [0x58c464]
mov eax, dword [0x557d7c]
mov ecx, dword [edx + 8]
shl ecx, 4
add ecx, dword [esi + 0x24]
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], 3
mov dword [ecx + 4], 0
inc dword [edx + 8]
mov ecx, dword [esi + 0x10]
lea eax, [ecx - 8]
cmp dword [edx + 8], eax
jl 0x4607b7
lea eax, [ecx + 0x100]
jmp 0x46077d
mov eax, dword [ecx + 8]
mov esi, dword [0x58c464]
shl eax, 4
add eax, dword [esi + 0x24]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 3
mov dword [eax + 4], 0
inc dword [ecx + 8]
mov edx, dword [esi + 0x10]
lea eax, [edx - 8]
cmp dword [ecx + 8], eax
jl 0x4607b7
lea eax, [edx + 0x100]
mov dword [esi + 0x10], eax
shl eax, 4
add eax, 0x20
push eax
push dword [esi + 0x24]
call fcn.00497d6e
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4607b4
push 0x10
push str.realloc
push 0x4c9a90
push 0
call ebx
mov esi, dword [0x58c464]
mov eax, dword [esp + 0xc]
mov dword [esi + 0x24], eax
mov ecx, 0x4c3c36
call fcn.0044fe30
mov ecx, dword [0x58c460]
mov esi, dword [0x58c464]
mov eax, dword [ecx + 8]
shl eax, 4
add eax, dword [esi + 0x24]
mov dword [eax + 0xc], edi
mov dword [eax + 8], 3
mov dword [eax + 4], 0
inc dword [ecx + 8]
mov edx, dword [esi + 0x10]
lea eax, [edx - 8]
cmp dword [ecx + 8], eax
jl 0x46082e
lea eax, [edx + 0x100]
mov dword [esi + 0x10], eax
shl eax, 4
add eax, 0x20
push eax
push dword [esi + 0x24]
call fcn.00497d6e
mov edi, eax
add esp, 8
test edi, edi
jne 0x46082b
push 0x10
push str.realloc
push 0x4c9a90
push eax
call ebx
mov esi, dword [0x58c464]
mov dword [esi + 0x24], edi
push 0
mov edx, 3
mov ecx, 0x38579896
call fcn.00438960
add esp, 4
call fcn.00443c00
mov ecx, dword [0x57314c]
mov esi, eax
call fcn.00478f80
test eax, eax
je 0x460861
cmp dword [eax + 0x18], 0
jne 0x460861
dec dword [eax + 4]
call fcn.00489250
sub esi, 2
jne 0x460883
call fcn.004508a0
call fcn.00451c30
mov ecx, dword [0x58c460]
lea edi, [esi + 1]
jmp 0x4606f7
sub esi, 3
je 0x460660
dec esi
jne 0x46058d
call fcn.00449800
jmp 0x460660
push 0x4c7af8
call fcn.00485990
add esp, 4
push 0xffffffffffffffff
call fcn.0049501f
push 0
call fcn.0049501f
push 0x10
call fcn.004568b0
push eax
push 0x4c7ba4
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call fcn.0049501f
push 0x4c7aa0
call fcn.00485990
add esp, 4
push 0xffffffffffffffff
call fcn.0049501f
int3