Function at 0x40c790
Capabilities:
Accept command line arguments
Check mutex on windows
Create process on windows
Delete registry value
Hide graphical window
Move file
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0xab4
push ebx
push ebp
push esi
push str.____Program_Start_n
call fcn.0044da10
push str.test.txt
call fcn.00560406
push str.c:comsik.txt
call fcn.00560406
push str.GunBound.INI
call fcn.00560406
xor ebp, ebp
push ebp
push str.gunbound.erl
lea eax, [esp + 0x198]
push 0x890f60
push eax
call fcn.0044f840
lea ecx, [esp + 0x1a0]
push ecx
call fcn.00560406
mov eax, dword [0x5f07b0]
add esp, 0x24
push 1
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x18], 0x1ba
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x5f0700]
push 1
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x18], ebp
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov ecx, dword [0x5f0708]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], 2
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [0x5f0710]
push 1
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x18], 4
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x5f0718]
push 1
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x18], 5
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov ecx, dword [0x5f0720]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], 8
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [0x5f0728]
push 1
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0xa
push edx
push eax
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x5f0730]
push 1
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x18], 0xf
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov ecx, dword [0x5f0738]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], 0x14
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [0x5f0740]
push 1
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x18], 0x19
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x5f0748]
push 1
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x18], 0x1e
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov ecx, dword [0x5f0750]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], 0x32
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [0x5f0758]
push 1
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x18], 0x46
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x5f0760]
push 1
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x18], 0x4b
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov ecx, dword [0x5f0768]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], 0x50
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [0x5f0770]
push 1
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x62
push edx
push eax
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x5f0778]
push 1
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x18], 0x64
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov ecx, dword [0x5f0780]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], 0xa0
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [0x5f0788]
push 1
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x18], 0xc8
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x5f0790]
push 1
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x18], 0x100
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov ecx, dword [0x5f0798]
push 1
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], 0x168
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [0x5f07a0]
push 1
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x18], 0x3e8
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
push str.SoftnyxGunBound.gme
push 1
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
sete bl
cmp esi, ebp
je 0x40caf4
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test bl, bl
jne 0x40dba5
call fcn.0053fa20
push 0x8158
call fcn.0055e5a9
add esp, 4
cmp eax, ebp
je 0x40cb20
push 0x894e30
push ebp
push eax
call fcn.0044fd80
jmp 0x40cb22
xor eax, eax
push edi
mov edi, eax
mov dword [0x891df0], eax
mov dword [0x892d40], eax
call fcn.00450010
push 0x8158
call fcn.0055e5a9
add esp, 4
cmp eax, ebp
je 0x40cb54
push 0x894e30
push 1
push eax
call fcn.0044fd80
jmp 0x40cb56
xor eax, eax
mov edi, eax
mov dword [0x891df4], eax
mov dword [0x892d3c], eax
call fcn.00450010
push 0x8158
call fcn.0055e5a9
add esp, 4
cmp eax, ebp
je 0x40cb87
push 0x894e30
push 2
push eax
call fcn.0044fd80
jmp 0x40cb89
xor eax, eax
mov edi, eax
mov dword [0x891df8], eax
mov dword [0x892d44], eax
call fcn.00450010
push 0x200c
call fcn.0055e5a9
add esp, 4
cmp eax, ebp
je 0x40cbbb
push 0x894e30
push 3
mov edi, eax
call fcn.00408010
jmp 0x40cbbd
xor eax, eax
mov dword [0x892d48], eax
call dword [sym.imp.WINMM.dll_timeGetTime]
push eax
call fcn.005605c3
mov eax, dword [esp + 0xad0]
mov edi, dword [esp + 0xacc]
add esp, 4
cmp eax, ebp
jne 0x40cc2e
push 0x7f00
push ebp
mov dword [esp + 0x2c], 0xb
mov dword [esp + 0x30], 0x40ef80
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ebp
call dword [sym.imp.USER32.dll_LoadCursorA]
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], 0x591fc4
call dword [sym.imp.USER32.dll_RegisterClassA]
push 0
push edi
push 0
push 0
push 1
push 1
push 0
push 0
push 0x86000000
push 0x591fb8
push 0x591fc4
push 8
call dword [sym.imp.USER32.dll_CreateWindowExA]
push str.CreateWindow_n
mov ebp, eax
call fcn.0044da10
add esp, 4
push ebp
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push ebp
call dword [sym.imp.USER32.dll_SetFocus]
cmp dword [0x89268c], 1
mov dword [0x892d6c], ebp
mov dword [0x892d70], edi
mov dword [0x5a99e0], 0
jne 0x40cd7e
push ebp
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
push 0x74
push ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ecx, eax
call fcn.0040bae0
test eax, eax
mov dword [0x5a99e0], eax
jne 0x40cd76
call fcn.0040a610
push 0x10
mov ecx, 0x258
mov edx, 0x320
mov esi, eax
call fcn.0040a460
add esp, 4
mov ecx, eax
call fcn.0040bae0
cmp eax, esi
mov dword [esp + 0x18], eax
jae 0x40cd76
lea edx, [esp + 0x14]
push edx
push 0xf003f
push 0
push str.SoftwareSoftnyxGunBoundWC
push reloc.WS2_32.dll_bind
mov dword [esp + 0x24], 4
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40cd57
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push esi
lea ecx, [esp + 0x24]
push ecx
push 0
push str.Template
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x40cd57
mov ecx, dword [esp + 0x14]
push 4
lea eax, [esp + 0x1c]
push eax
push 4
push 0
push str.Template
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, esi
call fcn.0040bae0
push eax
mov edx, 0x10
mov eax, 0x258
mov ecx, 0x320
call fcn.0040a540
add esp, 4
push ebx
push ebp
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0xad4]
push eax
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
push ebp
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
call dword [sym.imp.USER32.dll_ShowCursor]
call fcn.004bdb90
call fcn.00417460
push 0x891b60
push str.BrokerServerIP:_s_n
call fcn.004bdcb0
mov ecx, dword [0x892680]
push ecx
push str.BrokerServerPort:_d_n
call fcn.004bdcb0
add esp, 0x10
push 0x892d88
mov ecx, 0x8977bc
call fcn.00541de0
test al, al
jne 0x40cde9
push str.MD5___GME_NOT_FOUND_ERROR_
call fcn.004bdcb0
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov ecx, eax
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40cdf4
sub ecx, esi
cmp ecx, 0x60
jne 0x40dba4
xor esi, esi
mov ebx, eax
lea ebx, [ebx]
lea edx, [esi + 0x892760]
push edx
push str._02x
push ebx
call fcn.0056033e
add esp, 0xc
inc esi
add ebx, 2
cmp esi, 0x30
jl 0x40ce10
push 1
call fcn.0055e5a9
mov esi, eax
add esp, 4
test esi, esi
je 0x40ce4d
push str.RanOnlinePH
call fcn.00546a50
add esp, 4
jmp 0x40ce4f
xor esi, esi
mov dword [0x892688], esi
call fcn.00546a10
mov esi, eax
push esi
push str.NProtect__Init___d_n
call fcn.0044da10
add esp, 8
call fcn.0040bc50
push 0x897640
call fcn.0044dc60
cmp esi, 0x755
jne 0x40d71b
mov eax, dword [0x8927a4]
test eax, eax
je 0x40cf25
push 0x890f60
lea ebx, [eax + 0x80a6c]
call fcn.00453950
test al, al
je 0x40cec9
push 0xf4240
push 0x897640
call fcn.0044dea0
mov ecx, dword [0x8927a4]
add ecx, 0x80a6c
push ecx
call fcn.00453a20
jmp 0x40cedc
push 0
push str.error
push str.Can_not_find_EventWord.dat_file
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
xor ebx, ebx
mov edi, edi
lea edx, [ebx + 0x3d0900]
push edx
push 0x897640
call fcn.0044dea0
push eax
call fcn.005602b2
mov ecx, dword [0x8927a4]
mov edx, dword [ecx + ebx*8 + 0x80dd8]
add esp, 4
mov dword [esp + 0x18], eax
push 1
lea eax, [esp + 0x1c]
push eax
push edx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
inc ebx
cmp ebx, 3
jl 0x40cee0
push edi
mov ebx, ebp
call fcn.0040de00
mov esi, eax
push esi
push str.Initialized___d_n
mov dword [esp + 0x1c], esi
call fcn.0044da10
add esp, 0xc
test esi, esi
jne 0x40cff4
mov eax, dword [0x8927a4]
add eax, 0x1a2a9
push eax
lea esi, [esp + 0x170]
call fcn.0040bb40
add esp, 4
push ebp
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [0x892d48]
mov esi, dword [eax + 0x2004]
push 0x20a3
mov edi, str.localhost
mov ebx, eax
call fcn.004570d0
mov byte [ebx + 0x2008], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x892d30], eax
mov eax, 6
call fcn.00413f10
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x5c]
push ecx
call esi
test eax, eax
je 0x40d1ce
push 0
push 0
push 0
lea edx, [esp + 0x58]
push edx
call edi
test eax, eax
je 0x40d0d0
lea eax, [esp + 0x4c]
push eax
call ebx
lea ecx, [esp + 0x4c]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x40cfb4
cmp esi, 0x17
jne 0x40d0d0
lea ecx, [esp + 0x14]
push ecx
push 0xf003f
push 0
push str.SoftwareSoftnyxGunBoundWC
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40d081
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0
push str.Template
push edx
mov dword [esp + 0x30], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40d076
mov eax, dword [esp + 0x1c]
push eax
mov edx, 0x10
mov eax, 0x258
mov ecx, 0x320
call fcn.0040a540
mov ecx, dword [esp + 0x18]
add esp, 4
push str.Template
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
mov ebx, ebp
call fcn.0040de00
add esp, 4
test eax, eax
jne 0x40d0d0
mov eax, dword [0x8927a4]
add eax, 0x1a2a9
push eax
lea esi, [esp + 0x170]
call fcn.0040bb40
add esp, 4
push ebp
call dword [sym.imp.USER32.dll_SetFocus]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x892d30], eax
mov eax, 6
call fcn.00413f10
mov dword [0x89268c], 0
mov eax, dword [0x5a99e0]
test eax, eax
jne 0x40d161
lea edx, [esp + 0x14]
push edx
push 0xf003f
push 0
push str.SoftwareSoftnyxGunBoundWC
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40d161
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
push edx
push 0
push str.Template
push eax
mov dword [esp + 0x34], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40d156
mov ecx, dword [esp + 0x18]
push ecx
mov edx, 0x10
mov eax, 0x258
mov ecx, 0x320
call fcn.0040a540
mov edx, dword [esp + 0x18]
add esp, 4
push str.Template
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [esp + 0x10]
test esi, esi
sete cl
push ecx
call fcn.0040e880
mov eax, dword [0x892688]
add esp, 4
test eax, eax
mov edi, eax
je 0x40d18c
call fcn.00546bd0
push edi
call fcn.0055f7e2
add esp, 4
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
push 0
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [0x892d6a], 1
je 0x40d611
test esi, esi
je 0x40d611
lea eax, [esi - 0xd]
cmp eax, 0xda
ja case.0x40d1c7.14
movzx edx, byte [eax + 0x40dbf0]
jmp dword [edx*4 + 0x40dbb4]
call fcn.00414df0
jmp 0x40cfb4
mov ecx, dword [0x8927a4]
add ecx, 0x295a8
call fcn.004086e0
push eax
mov ecx, 0x5f07ac
call fcn.004086e0
push eax
push 0x12d
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x190]
push eax
call fcn.0055e68c
add esp, 0x10
push 0
push 0x13b
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x18c]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d611
push 0x890f60
push 0x12e
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
push 0x13b
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x18c]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d611
mov ecx, dword [0x8927a4]
mov edx, dword [ecx + 0x2c840]
push edx
mov ecx, 0x5f07ac
call fcn.004086e0
push eax
push 0x12f
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x190]
push eax
call fcn.0055e68c
add esp, 0x10
push 0
push 0x13b
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x18c]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d611
push 0x890f60
push pe_nt_image_headers32
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
push 0x13b
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x18c]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d611
mov ecx, dword [0x8927a4]
push 0x63
push ecx
call fcn.004261b0
push eax
mov ecx, 0x5f07ac
call fcn.004086e0
push eax
push 0x131
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x190]
push edx
call fcn.0055e68c
add esp, 0x10
jmp 0x40d261
push 0x890f60
push 0x132
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0055e68c
add esp, 0xc
push 0
push 0x13b
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d611
push 0x890f60
push 0x142
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x18c]
push eax
call fcn.0055e68c
add esp, 0xc
jmp 0x40d215
mov edx, dword [0x892d14]
push 0x890f60
push edx
mov ecx, 0x5f07a4
call fcn.004086e0
push eax
push 0x133
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x194]
push eax
call fcn.0055e68c
add esp, 0x14
jmp 0x40d215
mov edx, dword [0x892d14]
push 0x890f60
push edx
mov ecx, 0x5f07a4
call fcn.004086e0
push eax
push 0x134
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x194]
push eax
call fcn.0055e68c
add esp, 0x14
jmp 0x40d215
push 0
push 0x13d
push 0x897640
call fcn.0044dea0
push eax
push 0x135
jmp 0x40d541
mov edx, dword [esp + 0x10]
xor eax, eax
mov byte [esp + 0x68], 0
mov ecx, 0x3f
lea edi, [esp + 0x69]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push edx
stosb byte es:[edi], al
lea eax, [esp + 0x6c]
push str.Language.GetMessage_317___d
push eax
call fcn.0055e68c
add esp, 0xc
push 0
lea ecx, [esp + 0x6c]
push ecx
push 0x136
push 0x897640
call fcn.0044dea0
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
push 0
push 0
push 0x13e
jmp 0x40d5f9
push 0
push 0x13d
push 0x897640
call fcn.0044dea0
push eax
push 0x137
push 0x897640
call fcn.0044dea0
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
push 0
push 0
push 0x13f
jmp 0x40d5f9
push 0
push 0x13d
push 0x897640
call fcn.0044dea0
push eax
push 0x138
jmp 0x40d541
push 0
push 0x13d
push 0x897640
call fcn.0044dea0
push eax
push 0x139
push 0x897640
call fcn.0044dea0
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d611
test esi, 0x8000
je 0x40d5ab
and esi, 0x7fff
push esi
push 0x143
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
lea eax, [esp + 0x188]
push eax
push 0x144
push 0x897640
call fcn.0044dea0
push eax
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d611
push esi
push 0x13a
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0055e68c
add esp, 0xc
push 0
push 0x13d
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
push 0
push 0
push 0x140
push 0x897640
call fcn.0044dea0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
xor eax, eax
jmp 0x40d620
mov cl, byte [eax + 0x890f60]
mov byte [esp + eax + 0x6c4], cl
inc eax
test cl, cl
jne 0x40d620
lea edi, [esp + 0x6c4]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d640
mov eax, dword [str.gunbound.ex_]
mov ecx, dword [0x591ebc]
mov edx, dword [0x591ec0]
mov dword [edi], eax
mov al, byte [0x591ec4]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
lea ecx, [esp + 0x584]
push ecx
lea edx, [esp + 0x6c8]
push edx
mov byte [edi + 0xc], al
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x40d6ff
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + 0x890f60]
mov byte [esp + eax + 0x184], cl
inc eax
test cl, cl
jne 0x40d690
lea edi, [esp + 0x184]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d6b0
mov eax, dword [str.gunbound.exe]
mov ecx, dword [0x591eac]
mov edx, dword [0x591eb0]
mov dword [edi], eax
mov al, byte [0x591eb4]
mov dword [edi + 4], ecx
lea ecx, [esp + 0x184]
mov dword [edi + 8], edx
push ecx
mov byte [edi + 0xc], al
call fcn.00560406
add esp, 4
lea edx, [esp + 0x184]
push edx
lea eax, [esp + 0x6c8]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push str.____Program_End_n
call fcn.0044da10
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xab4
ret 0x10
cmp esi, 0x7c
ja 0x40d8b7
je case.0x40d8cf.141
lea eax, [esi - 0x6e]
cmp eax, 0xa
ja case.0x40d8cf.143
movzx ecx, byte [eax + 0x40dce4]
jmp dword [ecx*4 + 0x40dccc]
push 0x7531
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x70]
push edx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7531
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x18c]
push eax
call fcn.0055e68c
add esp, 0xc
push 0
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x18c]
push edx
jmp 0x40db9d
push 0x7532
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7532
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0055e68c
add esp, 0xc
push 0
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x18c]
jmp 0x40db9c
push 0x7533
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7533
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x18c]
push ecx
jmp 0x40db9d
push 0x753b
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x70]
push edx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x753b
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x18c]
push eax
call fcn.0055e68c
add esp, 0xc
push 0
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x18c]
push edx
jmp 0x40db9d
lea eax, [esi - 0x8d]
cmp eax, 0xef
ja case.0x40d8cf.143
movzx eax, byte [eax + 0x40dd10]
jmp dword [eax*4 + 0x40dcf0]
push 0x7534
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7534
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x18c]
push ecx
jmp 0x40db9d
push 0x7535
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x70]
push edx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7535
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x18c]
push eax
call fcn.0055e68c
add esp, 0xc
push 0
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x18c]
push edx
jmp 0x40db9d
push 0x7536
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7536
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0055e68c
add esp, 0xc
push 0
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x18c]
jmp 0x40db9c
push 0x7537
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7537
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x18c]
push ecx
jmp 0x40db9d
push 0x7538
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x70]
push edx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7538
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x18c]
push eax
call fcn.0055e68c
add esp, 0xc
push 0
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x18c]
push edx
jmp 0x40db9d
push 0x7539
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x7539
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x18c]
push ecx
call fcn.0055e68c
add esp, 0xc
push 0
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x18c]
jmp 0x40db9c
push 0x753a
push 0x7530
push 0x897640
call fcn.0044dea0
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.0055e68c
add esp, 0xc
and esi, 0x7fff
push esi
push 0x753a
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x18c]
push ecx
jmp 0x40db9d
and esi, 0x7fff
push esi
push 0x143
push 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0x18c]
push edx
call fcn.0055e68c
add esp, 0xc
push 0
lea eax, [esp + 0x188]
push eax
push 0x144
push 0x897640
call fcn.0044dea0
push eax
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xab4
ret 0x10