Function at 0x4127b0
Capabilities:
Check if file exists
Check os version
Create thread
Get file attributes
Hide graphical window
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x740
push ebx
push esi
push edi
xor eax, eax
mov ecx, 0x25
lea edi, [ebp - 0x240]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x240]
push eax
mov dword [ebp - 0x240], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [ebp - 0x230]
mov ecx, 2
cmp eax, ecx
jne 0x41280f
mov eax, dword [ebp - 0x23c]
cmp eax, 6
ja 0x412806
jne 0x41280f
cmp dword [ebp - 0x238], ecx
jb 0x41280f
mov byte [0x4f4ea9], 1
jmp 0x412816
mov byte [0x4f4ea9], 0
push str.x1turboz
push str._s.ini
call fcn.004893e0
push eax
call fcn.0048a0f0
mov eax, dword [ebp + 8]
add esp, 0xc
push 0x66
xor ebx, ebx
push eax
mov dword [ebp - 0x50], 3
mov dword [ebp - 0x4c], 0x413490
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebx
mov dword [ebp - 0x3c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 4
mov dword [ebp - 0x38], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [ebp - 0x50]
push ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0x65
mov dword [ebp - 0x2c], str.CWINDOW
call dword [sym.imp.USER32.dll_RegisterClassA]
push 1
push 0x10ca0000
lea edx, [ebp - 0x18]
push edx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], 0x280
mov dword [ebp - 0xc], 0x190
call dword [sym.imp.USER32.dll_AdjustWindowRect]
push ebx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edi, eax
push 8
push edi
call esi
push 0xa
push edi
mov dword [0x4f49b0], eax
call esi
push 0xc
push edi
mov dword [0x4f45ac], eax
call esi
push edi
push ebx
mov dword [0x4f4c04], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov edx, dword [0x4f49b0]
mov esi, dword [ebp - 0xc]
mov eax, edi
sub eax, ecx
add eax, edx
cdq
sub eax, edx
mov edx, dword [0x4f45ac]
mov ebx, eax
mov eax, dword [ebp - 0x14]
sub eax, esi
add eax, edx
cdq
sub eax, edx
mov edx, dword [0x8dd848]
sar ebx, 1
sar eax, 1
test edx, edx
jl 0x412921
mov eax, dword [0x8dd84c]
mov ebx, edx
xor edx, edx
test eax, eax
setl dl
push 0
sub ecx, edi
dec edx
and eax, edx
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp - 0x14]
push 0
push 0
sub esi, edx
push esi
push ecx
push eax
push ebx
push 0x10ca0000
push str.SHARP_X1turboZ
push str.CWINDOW
push 0
mov dword [ebp - 4], eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
mov eax, dword [ebp + 0x14]
push eax
push esi
mov dword [ebp - 8], esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push esi
call fcn.00418e80
push 0x40
call fcn.00496f9b
mov edi, eax
add esp, 8
test edi, edi
je 0x412adb
push str.keyemudi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [edi], eax
je 0x412a9d
push str.ked_create
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [edi]
push str.ked_create_did8
push ecx
mov dword [edi + 4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [edi]
push str.ked_release
push edx
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [edi + 0xc], eax
mov eax, dword [edi]
push str.ked_reset
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [edi]
push str.ked_clear
push ecx
mov dword [edi + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [edi]
push str.ked_acquire
push edx
mov dword [edi + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [edi + 0x18], eax
mov eax, dword [edi]
push str.ked_get
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [edi]
push str.ked_setdelay
push ecx
mov dword [edi + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [edi]
push str.ked_usemmtimer
push edx
mov dword [edi + 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [edi + 0x24], eax
mov eax, dword [edi]
push str.ked_updatecounter
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [edi]
push str.ked_setconverttable
push ecx
mov dword [edi + 0x28], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [edi]
push str.ked_getconverttable
push edx
mov dword [edi + 0x30], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [edi + 0x2c], eax
mov eax, dword [edi]
push str.ked_getdevicestate
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [edi]
push str.ked_setnumlock
push ecx
mov dword [edi + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [edi]
push 0x4abac8
push edx
mov dword [edi + 0x38], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [edi + 0x3c], eax
cmp dword [edi], 0
je 0x412abf
mov eax, dword [0x4f4e94]
push str.Use_DirectInput__keyemudi_
push 0xa0fa
push 0
push 0xa0fa
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
mov eax, dword [edi]
test eax, eax
je 0x412ad2
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [edi], 0
push edi
call fcn.0048d4e6
add esp, 4
mov al, byte [0x8dd83d]
test al, al
je 0x412b34
mov eax, dword [0x4f4e9c]
test eax, eax
jne 0x412b1e
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x3e9
push esi
push 0
push 0x50000003
call dword [sym.imp.COMCTL32.dll_CreateStatusWindowA]
push 0
push 0x1000
push 0x401
push eax
mov dword [0x4f4e9c], eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x4f4e9c]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov byte [0x4f4ea0], 1
mov edx, dword [ebp + 8]
xor edi, edi
push 5
mov dword [0x4f4e84], esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], 0x417690
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], str.Child
call dword [sym.imp.USER32.dll_RegisterClassA]
mov ecx, dword [ebp + 8]
push edi
push ecx
push edi
push esi
push edi
push edi
push edi
push edi
push 0x52000000
push str.Child
push str.Child
push edi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x4f4e88], eax
mov eax, dword [0x4f4e9c]
cmp eax, edi
je 0x412bc3
mov cl, byte [0x4f4ea0]
test cl, cl
je 0x412bc3
lea edx, [ebp - 0x28]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [ebp - 0x1c]
sub edi, dword [ebp - 0x24]
jmp 0x412bc5
xor edi, edi
lea eax, [ebp - 0xa8]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x9c]
lea ecx, [edi + 0x190]
cmp eax, ecx
je 0x412c11
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
sub edi, eax
lea eax, [edx + edi + 0x190]
mov edx, dword [ebp - 0x18]
push 4
mov dword [ebp - 0xc], eax
sub eax, ecx
mov ecx, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
sub eax, edx
push eax
push ecx
push ebx
push 0
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
call fcn.0041bc60
mov eax, dword [0x8dd280]
test eax, eax
jl 0x412c2e
cmp eax, 0xa
jge 0x412c33
push 0
add eax, 0xa155
push eax
jmp 0x412c5b
cmp eax, 0xa
jl 0x412c4a
mov edx, dword [0x4f4ba0]
add edx, 0xa
cmp eax, edx
jge 0x412c4a
push 0
add eax, 0xa155
push eax
jmp 0x412c5b
push 0
mov dword [0x8dd280], 0
push 0xa155
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [ebp + 8]
push 0x67
push eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
push 0
push 0
push eax
mov dword [ebp + 0x14], eax
call dword [sym.imp.USER32.dll_CopyAcceleratorTableA]
lea edi, [eax + 1]
lea ecx, [edi + edi*2]
shl ecx, 1
push ecx
mov dword [ebp - 0x58], eax
call fcn.00496f9b
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 4], 0
je 0x412cdd
mov edx, dword [ebp + 0x14]
push edi
push ebx
push edx
call dword [sym.imp.USER32.dll_CopyAcceleratorTableA]
mov eax, dword [ebp - 0x58]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*2]
mov byte [eax], 0x1b
push edi
mov word [eax + 2], 0x5d
push ebx
mov word [eax + 4], 0x6c
call dword [sym.imp.USER32.dll_CreateAcceleratorTableA]
test eax, eax
mov dword [ebp - 4], eax
je 0x412cdd
mov ecx, eax
mov dword [ebp + 0x14], ecx
xor edx, edx
pushfd
pop eax
xor eax, 0x200000
push eax
popfd
pushfd
pop ebx
cmp eax, ebx
jne 0x412cfb
mov eax, 1
cpuid
and edx, 0x4000000
mov dword [0x4f4e8c], edx
mov eax, edx
push 0x923c
call fcn.00496f9b
add esp, 4
test eax, eax
je 0x412d22
mov edx, dword [ebp + 8]
push edx
push esi
mov ecx, eax
call fcn.00407ad0
jmp 0x412d24
xor eax, eax
push 1
push 0x190
push 0x280
mov ecx, eax
mov dword [0x4f4e90], eax
call fcn.00408d20
mov eax, dword [0x4f4e78]
test eax, eax
je 0x412e08
lea eax, [ebp - 0x28]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
xor eax, eax
push str.x1turboz
mov ecx, 7
mov edi, 0x4f49b8
push str._s.ini
rep stosd dword es:[edi], eax
mov dword [ebp + 8], eax
call fcn.004893e0
mov ecx, dword [0x4f4e74]
mov edi, dword [ecx]
mov edx, dword [0x4f4e78]
add esp, 8
test edi, edi
je 0x412dba
mov ecx, dword [ecx + 0x44]
test ecx, ecx
je 0x412dba
push 0x4f49b8
push eax
push edx
call ecx
add esp, 0xc
test eax, eax
je 0x412dba
mov ecx, dword [0x4f49bc]
mov edx, dword [0x4f49c0]
mov eax, dword [0x4f49c4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp + 8], eax
test byte [0x4f49d0], 1
je 0x412e08
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x28]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [0x4f4e74]
cmp dword [ecx], 0
je 0x412df6
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x412df6
mov edx, dword [ebp + 8]
push edx
push edi
push ebx
push eax
mov eax, dword [0x4f4e78]
push esi
push eax
call ecx
add esp, 0x18
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dword [0x4f4bac], ecx
mov dword [0x4f4ba8], edx
mov al, byte [0x8dd83b]
mov byte [0x4f4cd4], al
mov eax, dword [0x4cfbf8]
test eax, eax
je 0x412e44
cmp dword [eax], 0
je 0x412e44
mov bl, byte [0x8dd850]
push 1
push 0xa0fd
test bl, bl
push 0x111
sete cl
push esi
mov byte [0x8dd850], cl
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [0x4cfbfc]
test eax, eax
je 0x412e64
cmp dword [eax], 0
je 0x412e64
mov al, byte [0x8dd851]
test al, al
sete dl
mov byte [0x8dd851], dl
jmp 0x412e6b
mov byte [0x8dd851], 1
push 0
push 0xa0fe
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [0x8dd844]
mov ecx, dword [0x4f4e90]
mov ecx, dword [ecx + 4]
push eax
call fcn.00412200
mov edx, dword [0x4f4e90]
mov eax, dword [edx + 4]
lea edx, [eax + 0x25]
mov al, byte [0x8dd95f]
test al, al
lea esi, [edx + 0x100]
mov ecx, 0x40
mov edi, edx
rep movsd dword es:[edi], dword [esi]
je 0x412ee3
mov al, byte [0x8dd95f]
test al, al
je 0x412ee3
mov eax, 0x8dd4e4
mov esi, 0x10
mov ecx, dword [eax]
test ecx, ecx
jge 0x412ed6
mov edi, edx
sub edi, ecx
mov byte [edi], 0
add eax, 4
dec esi
jne 0x412ec9
cmp eax, 0x8dd6e4
jl 0x412ec4
mov al, byte [0x8dd95e]
test al, al
je 0x412efc
mov byte [edx + 0x25], 0
mov byte [edx + 0x26], 0
mov byte [edx + 0x27], 0
mov byte [edx + 0x28], 0
mov al, byte [0x8dd95d]
test al, al
je 0x412f15
mov byte [edx + 0x25], 0x64
mov byte [edx + 0x26], 0x68
mov byte [edx + 0x27], 0x66
mov byte [edx + 0x28], 0x62
mov eax, dword [0x4f4e90]
mov edx, dword [eax + 4]
add edx, 0x25
lea esi, [edx + 0x100]
mov ecx, 0x40
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov al, byte [0x8dd95f]
test al, al
je 0x412f5c
mov eax, 0x8dd4e4
mov esi, 0x10
mov ecx, dword [eax]
test ecx, ecx
jge 0x412f4f
mov edi, edx
sub edi, ecx
mov byte [edi], 0
add eax, 4
dec esi
jne 0x412f42
cmp eax, 0x8dd6e4
jl 0x412f3d
mov ecx, dword [0x4f4e94]
mov edx, dword [ebp - 8]
push ecx
push edx
call fcn.00418730
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
add esp, 8
test cl, cl
je 0x41328e
push 0x1c
xor ebx, ebx
call fcn.00496f9b
mov esi, eax
add esp, 4
test esi, esi
je 0x412ff3
push str.cmdline.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [esi], eax
je 0x412ff5
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.cmd_tsplit
push eax
call edi
mov ecx, dword [esi]
push str.cmd_split
push ecx
mov dword [esi + 4], eax
call edi
mov edx, dword [esi]
push str.cmd_splitd
push edx
mov dword [esi + 8], eax
call edi
mov dword [esi + 0xc], eax
mov eax, dword [esi]
push str.cmd_getargc
push eax
call edi
mov ecx, dword [esi]
push str.cmd_getargv
push ecx
mov dword [esi + 0x10], eax
call edi
mov edx, dword [esi]
push str.cmd_checkoption
push edx
mov dword [esi + 0x14], eax
call edi
mov dword [esi + 0x18], eax
jmp 0x412ff5
xor esi, esi
cmp dword [esi], 0
je 0x413228
mov eax, dword [esi + 4]
test eax, eax
je 0x41300e
mov ecx, dword [ebp + 0x10]
push ecx
call eax
add esp, 4
cmp dword [esi], 0
je 0x413021
mov eax, dword [esi + 0x10]
test eax, eax
je 0x413021
call eax
mov dword [ebp + 8], eax
jmp 0x413028
mov dword [ebp + 8], 0
xor eax, eax
mov ecx, 9
lea edi, [ebp - 0x7c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
test eax, eax
jle 0x413223
mov edi, dword [sym.imp.USER32.dll_CharLowerA]
cmp dword [esi], 0
je 0x41305b
mov eax, dword [esi + 0x14]
test eax, eax
je 0x41305b
push ebx
call eax
add esp, 4
jmp 0x41305d
xor eax, eax
push 0x104
lea edx, [ebp - 0x1ac]
push edx
push eax
call fcn.00489940
add esp, 0xc
lea eax, [ebp - 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x413217
lea ecx, [ebp - 0x340]
push ecx
push 0
push 0
lea edx, [ebp - 0x1ac]
push 0
push edx
call fcn.00497d6b
add esp, 0x14
lea eax, [ebp - 0x340]
push eax
call edi
push eax
push str..d88.d77.1dd.td0.imd.dsk.nfd.fdi.hdm.hd5.hd4.hdb.dd9.dd6.tfd.xdf.2d.sf7.img.ima.vfd
call fcn.00496958
add esp, 8
test eax, eax
je 0x4130de
mov edx, dword [ebp - 0x78]
lea ecx, [ebp - 0x1ac]
push ecx
push edx
call fcn.0041a7f0
mov eax, dword [ebp - 0x78]
add esp, 8
inc eax
mov dword [ebp - 0x78], eax
jmp 0x413217
lea eax, [ebp - 0x640]
push eax
push 0
push 0
lea ecx, [ebp - 0x1ac]
push 0
push ecx
call fcn.00497d6b
add esp, 0x14
lea edx, [ebp - 0x640]
push edx
call edi
push eax
push str..thd.nhd.hdi.hdd.dat
call fcn.00496958
add esp, 8
test eax, eax
je 0x413134
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x1ac]
push eax
push ecx
call fcn.0041ac10
mov eax, dword [ebp - 0x70]
add esp, 8
inc eax
mov dword [ebp - 0x70], eax
jmp 0x413217
lea edx, [ebp - 0x740]
push edx
push 0
push 0
lea eax, [ebp - 0x1ac]
push 0
push eax
call fcn.00497d6b
add esp, 0x14
lea ecx, [ebp - 0x740]
push ecx
call edi
push eax
push str..wav.cas.p6.p6t.gz.cmt.n80.t88.mzt.mzf.m12.mti.tap.t77.bin
call fcn.00496958
add esp, 8
test eax, eax
je 0x41318c
mov eax, dword [ebp - 0x6c]
push 1
lea edx, [ebp - 0x1ac]
push edx
push eax
call fcn.0041af10
mov eax, dword [ebp - 0x6c]
add esp, 0xc
inc eax
mov dword [ebp - 0x6c], eax
jmp 0x413217
lea ecx, [ebp - 0x540]
push ecx
push 0
push 0
lea edx, [ebp - 0x1ac]
push 0
push edx
call fcn.00497d6b
add esp, 0x14
lea eax, [ebp - 0x540]
push eax
call edi
push eax
push str..n88
call fcn.00496958
add esp, 8
test eax, eax
je 0x4131d1
lea ecx, [ebp - 0x1ac]
push ecx
call fcn.0041b0f0
jmp 0x413214
lea edx, [ebp - 0x440]
push edx
push 0
push 0
lea eax, [ebp - 0x1ac]
push 0
push eax
call fcn.00497d6b
add esp, 0x14
lea ecx, [ebp - 0x440]
push ecx
call edi
push eax
push 0x4ac974
call fcn.00496958
add esp, 8
test eax, eax
je 0x413217
lea edx, [ebp - 0x1ac]
push edx
call fcn.0041b2f0
add esp, 4
mov eax, dword [ebp + 8]
inc ebx
cmp ebx, eax
jl 0x413047
mov ebx, 1
test esi, esi
je 0x413248
mov eax, dword [esi]
test eax, eax
je 0x41323f
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi], 0
push esi
call fcn.0048d4e6
add esp, 4
test ebx, ebx
jne 0x41328e
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0x22
jne 0x41326a
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + edx - 1], al
inc edx
mov dword [ebp + 0x10], edx
mov edx, dword [ebp + 0x10]
push 0x104
lea ecx, [ebp - 0x1ac]
push ecx
push edx
call fcn.00489940
lea eax, [ebp - 0x1ac]
push eax
call fcn.0041b3c0
add esp, 0x10
mov ecx, dword [0x4f4e90]
test ecx, ecx
je 0x413384
mov al, byte [0x8dd853]
test al, al
je 0x413384
push 0x63
call fcn.0040a2b0
mov ecx, dword [0x4f4e90]
push eax
call fcn.00409f20
mov ecx, dword [0x4f4e90]
lea eax, [ecx + 0x44]
cmp byte [eax], 0
je 0x413384
mov edx, dword [0x4f4d5c]
cmp dword [edx], 0
je 0x413384
lea ecx, [ebp - 0x540]
push ecx
lea edx, [ebp - 0x340]
push edx
lea ecx, [ebp - 0x440]
push ecx
lea edx, [ebp + 8]
push edx
push eax
call fcn.00497d6b
push 0x4ac974
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x440]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x1ac]
push eax
call fcn.00497cda
mov ecx, dword [0x4f4e90]
mov byte [0x4f4d60], 0
mov ecx, dword [ecx + 4]
add esp, 0x28
call fcn.0040a3d0
mov eax, dword [0x4f4d5c]
cmp dword [eax], 0
je 0x413376
mov eax, dword [eax + 0xc]
test eax, eax
je 0x413376
lea edx, [ebp - 0x1ac]
push edx
call eax
add esp, 4
test eax, eax
je 0x413376
lea eax, [ebp - 0x340]
push eax
push str.Pat:__s
push 0x104
push 0x4f4d60
call fcn.004893a0
add esp, 0x10
mov ecx, dword [0x4f4e90]
mov ecx, dword [ecx + 4]
call fcn.0040a3e0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [0x4f4c08], eax
je 0x4133d0
mov eax, dword [ebp - 8]
lea edx, [ebp + 8]
push edx
push 0
push eax
push 0x412410
push 0
push 0
mov dword [0x4f4eac], 1
call fcn.00496b63
add esp, 0x18
test eax, eax
mov dword [0x4f4eb0], eax
je 0x4133d9
push 1
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [0x4f4eb0]
test eax, eax
jne 0x4133ef
mov ecx, dword [ebp - 8]
push ecx
mov dword [0x4f4eac], 0
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x413464
push 0
push 0
push 0
lea edx, [ebp - 0x98]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x413464
mov edi, dword [sym.imp.USER32.dll_IsWindow]
mov esi, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov eax, dword [ebp - 8]
push eax
call edi
test eax, eax
je 0x41344d
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x98]
push ecx
push edx
push eax
call esi
test eax, eax
jne 0x41344d
lea ecx, [ebp - 0x98]
push ecx
call ebx
lea edx, [ebp - 0x98]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea eax, [ebp - 0x98]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
jne 0x413418
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x413474
push eax
call fcn.0048d4e6
add esp, 4
mov eax, dword [ebp - 4]
test eax, eax
je 0x413482
push eax
call dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10