Function at 0x477120
Capabilities:
Check mutex on windows
Enumerate gui resources
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f0d41
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
mov eax, dword [0x5299c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x9c], edi
cmp dword [ebp + 0x1c], 0
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], esi
jne 0x477ed9
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x8000
jne 0x477262
cmp dword [ebp + 0x10], 1
jne 0x477252
call fcn.0046d1e0
mov esi, eax
mov dword [ebp - 0xa0], esi
cmp dword [esi + 0x20], 0x10
lea eax, [esi + 0xc]
mov dword [ebp - 4], 0
jb 0x4771a9
mov eax, dword [eax]
push eax
lea ecx, [esi + 4]
call fcn.0047c540
cmp byte [edi + 0x238], 0
je 0x4771ce
lea eax, [edi + 0x3c]
mov dword [edi + 0x48], 0
push eax
push 2
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconA]
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowOwnedPopups]
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
test esi, esi
je 0x47724c
push 0x534a00
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x534a1c]
test eax, eax
jne 0x47721d
push 0x534a00
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x94]
mov dword [eax], 0
mov eax, 1
jmp 0x477edb
sub eax, 1
mov dword [0x534a1c], eax
jne 0x477241
mov ecx, dword [0x534a18]
test ecx, ecx
je 0x477241
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x534a18], 0
push 0x534a00
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0x94]
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
cmp ecx, 1
jne 0x477287
lea ecx, [ebp - 0x94]
push ecx
push eax
push dword [ebp + 0x10]
mov ecx, edi
push 1
call fcn.0046f890
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
cmp ecx, 0x10
jne 0x4772ac
lea ecx, [ebp - 0x94]
push ecx
push eax
push dword [ebp + 0x10]
mov ecx, edi
push 0x10
call fcn.0046f060
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
cmp ecx, 0x7b
jne 0x477335
cwde
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x98]
shr eax, 0x10
movsx edi, ax
push 0x81
push dword [0x534b98]
mov dword [ebp - 4], 1
call dword [sym.imp.USER32.dll_LoadMenuA]
mov esi, eax
push 0
push esi
mov dword [ebp - 0xa0], esi
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0xac], eax
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x9c]
add ecx, 0x34
mov byte [ebp - 4], 2
push edi
push dword [ebp - 0x90]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test esi, esi
je 0x47731f
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [ebp - 0x94]
mov dword [eax], 0
mov eax, 1
jmp 0x477edb
mov edx, dword [ebp + 0x10]
cmp ecx, 0x111
jne 0x4779cd
cmp edx, 0x186a0
jb 0x477394
mov ecx, dword [edi + 0x38c]
lea eax, [edx - 0x186a0]
sub ecx, dword [edi + 0x388]
sar ecx, 2
cmp eax, ecx
ja 0x477391
mov eax, dword [edi + 0x388]
mov eax, dword [eax + edx*4 - 0x61a84]
cmp dword [eax + 4], 0
je 0x477252
mov eax, dword [eax + 0x18]
call eax
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
mov ecx, dword [ebp + 0xc]
movzx eax, dx
mov dword [ebp - 0x90], 0x8019
mov dword [esi], 0
cmp word [ebp - 0x90], ax
jne 0x4773d9
lea eax, [ebp - 0x94]
shr edx, 0x10
push eax
push dword [ebp - 0x98]
mov ecx, edi
push 0x8019
push edx
call fcn.004730e0
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0x8014
cmp word [ebp - 0x90], ax
jne 0x477440
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x477404
push 5
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x47741e
push 9
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x477427
push dword [edi + 4]
call dword [sym.imp.USER32.dll_BringWindowToTop]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0xe141
cmp word [ebp - 0x90], ax
jne 0x47747c
push 0
push 0
push 0x10
push dword [edi + 4]
mov dword [edi + 0x380], 1
call dword [sym.imp.USER32.dll_PostMessageA]
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0x8015
cmp word [ebp - 0x90], ax
je 0x477453
mov dword [ebp - 0x90], 0xe800
cmp word [ebp - 0x90], ax
jne 0x4774cb
lea eax, [ebp - 0x94]
shr edx, 0x10
push eax
push dword [ebp - 0x98]
mov ecx, edi
push 0xe800
push edx
call fcn.00473020
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0xe801
cmp word [ebp - 0x90], ax
jne 0x47753b
push dword [edi + 0x28]
call dword [sym.imp.USER32.dll_IsWindowVisible]
xor ecx, ecx
mov edx, 4
test eax, eax
sete cl
mov dword [ebp - 0x9c], ecx
xor ecx, ecx
test eax, eax
cmove ecx, edx
push ecx
push dword [edi + 0x28]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [ebp - 0x9c]
lea ecx, [edi + 0x300]
push 0xe801
call fcn.0047cf90
push 1
mov ecx, edi
call fcn.0047d6e0
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0xe140
cmp word [ebp - 0x90], ax
jne 0x4776bf
push str.FSS_OPERATORAPP_WAIT_MUTEX
push 1
push 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0xb0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4775c9
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x4775c9
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4775c9
push dword [ebp - 0xb0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0xc0]
mov edi, dword [edi + 4]
mov dword [ebp - 0xd4], vtable.Presentation::AboutDlg.0
mov dword [ebp - 0xb4], vtable.Presentation::AboutDlg.1.0
test eax, eax
jne 0x477603
call fcn.004a8c87
mov dword [ebp - 0xc0], eax
test eax, eax
jne 0x477603
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x47766a
push 0
push 0
push eax
call fcn.004a8d86
lea eax, [ebp - 0xd4]
mov dword [ebp - 0xcc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x529124
mov dword [ebp - 0xc8], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x52913c]
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0xcc]
push 0x529124
mov dword [0x52913c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 0x419910
push edi
push 0xc8
push dword [0x534b98]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], vtable.WindowUtilites::WindowSyncHelper.0
test eax, eax
je 0x47769b
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp - 0xb0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x477252
push eax
call fcn.004a8d31
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0x800f
cmp word [ebp - 0x90], ax
jne 0x477808
push 0x188
call fcn.004ab698
add esp, 4
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x477727
mov ecx, eax
call fcn.00485e10
mov eax, dword [ebp - 0x98]
mov dword [eax], vtable.._AVLocal__1____CreateInteractionObject_VPendingCartsDlg_Presentation___InteractionObjectImpl__SAPAVPendingCartsDlg_Presentation__H_Z_.0
mov dword [eax + 0x20], vtable.._AVLocal__1____CreateInteractionObject_VPendingCartsDlg_Presentation___InteractionObjectImpl__SAPAVPendingCartsDlg_Presentation__H_Z_.1.0
mov dword [eax + 0x48], vtable.._AVLocal__1____CreateInteractionObject_VPendingCartsDlg_Presentation___InteractionObjectImpl__SAPAVPendingCartsDlg_Presentation__H_Z_.2.0
mov dword [eax + 0xd8], vtable.._AVLocal__1____CreateInteractionObject_VPendingCartsDlg_Presentation___InteractionObjectImpl__SAPAVPendingCartsDlg_Presentation__H_Z_.3.0
jmp 0x47772f
xor eax, eax
mov dword [ebp - 0x98], eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x98]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x477762
call fcn.004a8c87
mov dword [edi + 0x14], eax
test eax, eax
jne 0x477762
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x4777cf
push 0
push 0
push eax
call fcn.004a8d86
lea eax, [edi + 8]
test eax, eax
je 0x477ef8
test edi, edi
je 0x477ef8
mov dword [eax], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x529124
mov dword [edi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x52913c]
lea ecx, [edi + 8]
mov dword [ecx + 8], eax
push 0x529124
mov dword [0x52913c], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 0x419910
push dword [ebp - 0x9c]
push 0xcb
push dword [0x534b98]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
add edi, 0x20
cmp dword [edi + 0x10], 1
jne 0x4777f1
push 1
push 0
mov ecx, edi
call fcn.00436ea0
mov ecx, dword [0x5349ec]
push 1
push edi
call fcn.00436340
mov ecx, edi
call fcn.00437160
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0x8029
cmp word [ebp - 0x90], ax
jne 0x477951
push 0x198
call fcn.004ab698
add esp, 4
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x477870
mov ecx, eax
call fcn.00439a20
mov eax, dword [ebp - 0x98]
mov dword [eax], vtable.._AVLocal__1____CreateInteractionObject_VCompletedCartsDlg_Presentation___InteractionObjectImpl__SAPAVCompletedCartsDlg_Presentation__H_Z_.0
mov dword [eax + 0x20], vtable.._AVLocal__1____CreateInteractionObject_VCompletedCartsDlg_Presentation___InteractionObjectImpl__SAPAVCompletedCartsDlg_Presentation__H_Z_.1.0
mov dword [eax + 0x48], vtable.._AVLocal__1____CreateInteractionObject_VCompletedCartsDlg_Presentation___InteractionObjectImpl__SAPAVCompletedCartsDlg_Presentation__H_Z_.2.0
mov dword [eax + 0xd8], vtable.._AVLocal__1____CreateInteractionObject_VCompletedCartsDlg_Presentation___InteractionObjectImpl__SAPAVCompletedCartsDlg_Presentation__H_Z_.3.0
jmp 0x477878
xor eax, eax
mov dword [ebp - 0x98], eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x98]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x4778ab
call fcn.004a8c87
mov dword [edi + 0x14], eax
test eax, eax
jne 0x4778ab
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x477918
push 0
push 0
push eax
call fcn.004a8d86
lea eax, [edi + 8]
test eax, eax
je 0x477ef8
test edi, edi
je 0x477ef8
mov dword [eax], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x529124
mov dword [edi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x52913c]
lea ecx, [edi + 8]
mov dword [ecx + 8], eax
push 0x529124
mov dword [0x52913c], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 0x419910
push dword [ebp - 0x9c]
push 0xd3
push dword [0x534b98]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
add edi, 0x20
cmp dword [edi + 0x10], 1
jne 0x47793a
push 1
push 0
mov ecx, edi
call fcn.00436ea0
mov ecx, dword [0x5349ec]
push 1
push edi
call fcn.00436340
mov ecx, edi
call fcn.00437160
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0x8018
cmp word [ebp - 0x90], ax
jne 0x47798d
lea eax, [ebp - 0x94]
shr edx, 0x10
push eax
push dword [ebp - 0x98]
mov ecx, edi
push 0x8018
push edx
call fcn.00472870
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
mov dword [ebp - 0x90], 0x801d
cmp word [ebp - 0x90], ax
jne 0x477c95
lea eax, [ebp - 0x94]
shr edx, 0x10
push eax
push dword [ebp - 0x98]
mov ecx, edi
push 0x801d
push edx
call fcn.00472580
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
cmp ecx, 0x31
jne 0x4779e2
mov eax, dword [edi + 0x394]
mov dword [esi], eax
lea eax, [ecx - 0x30]
jmp 0x477edb
cmp ecx, 0x30
jne 0x477adb
mov eax, dword [edi + 0x31c]
mov ecx, dword [ebp + 0x10]
mov dword [edi + 0x394], ecx
mov dword [eax + 0xa8], ecx
mov ecx, dword [edi + 0x31c]
call fcn.004441c0
mov ecx, dword [edi + 0x31c]
push dword [ecx + 0x44]
call fcn.0045f8d0
mov eax, dword [edi + 0x31c]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x418
push dword [eax + 4]
call esi
xorps xmm0, xmm0
movups xmmword [ebp - 0x20], xmm0
test eax, eax
je 0x477a54
lea ecx, [ebp - 0x20]
dec eax
push ecx
push eax
mov eax, dword [edi + 0x31c]
push 0x41d
push dword [eax + 4]
call esi
mov esi, dword [edi + 0x24]
push 0
push 0xeb00
push 0x410
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x64
mov edi, eax
lea eax, [ebp - 0x8c]
push 0
push eax
call fcn.004c3810
add esp, 0xc
call fcn.0047ca20
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
push edi
push 0x41d
push esi
mov dword [ebp - 0x88], 0x60
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x8c]
push eax
push edi
push 0x406
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x94]
mov dword [eax], 0
mov eax, 1
jmp 0x477edb
cmp ecx, 0x2f2f
jne 0x477b06
lea ecx, [ebp - 0x94]
push ecx
push eax
push dword [ebp + 0x10]
mov ecx, edi
push 0x2f2f
call fcn.00471530
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
cmp ecx, 0x2f15
jne 0x477ba0
push 0x534aa4
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x534abc]
mov dword [ebp - 4], 3
mov dword [ebp - 0x98], eax
test eax, eax
jne 0x477b48
push 1
call fcn.00455040
add esp, 4
mov dword [ebp - 0x98], eax
mov dword [0x534abc], eax
inc dword [0x534ac0]
push 0x534aa4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xa0], eax
mov ecx, dword [edi + 0x318]
mov dword [ebp - 4], 4
call fcn.0048f660
cmp dword [ebp - 0x98], 0
mov dword [ebp - 4], 5
je 0x477252
call fcn.0046a950
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
cmp ecx, 0x2f19
jne 0x477c9b
mov eax, dword [edi + 4]
mov dword [edi + 0x384], 1
mov dword [edi + 0x380], 1
mov dword [ebp - 0x9c], eax
nop dword [eax]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0x1000
mov esi, eax
mov dword [ebp - 0x28], 0x4fbe8c
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.004ab9a4
add esp, 4
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x20], 0x400
mov dword [ebp - 0x28], 0x4fbe98
mov dword [ebp - 0x14], esi
push eax
push 0x469910
call dword [sym.imp.USER32.dll_EnumWindows]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], 0
test eax, eax
je 0x477c3c
cmp dword [ebp - 0x1c], 0
jbe 0x477c3c
mov ecx, dword [eax]
mov dword [ebp - 0x18], 1
jmp 0x477c3e
xor ecx, ecx
cmp ecx, dword [edi + 4]
je 0x477c53
push 0
push 0
push 0x10
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x24]
push eax
mov dword [ebp - 0x28], 0x4fbe8c
call fcn.004ab9ad
mov eax, dword [edi + 4]
add esp, 4
cmp dword [ebp - 0x9c], eax
jne 0x477bd0
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [ebp - 0x94]
mov dword [eax], 0
mov eax, 1
jmp 0x477edb
mov eax, dword [ebp - 0x98]
lea esi, [edi + 0x34]
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0x94]
cmp ecx, dword [edi + 0x38]
jne 0x477cd0
lea edi, [ebp - 0xa0]
push edi
push eax
push edx
push ecx
mov ecx, dword [ebp - 0x90]
call fcn.00472e80
mov dword [esi], eax
mov eax, 1
jmp 0x477edb
lea esi, [edi + 0x300]
mov dword [ebp - 0xa4], esi
mov esi, dword [ebp - 0x94]
cmp ecx, 0x117
jne 0x477d26
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], 1
push ecx
push eax
push edx
push 0x117
lea ecx, [edi + 0x300]
call fcn.004703a0
cmp dword [ebp - 0x94], 0
mov dword [esi], eax
je 0x477e3a
mov eax, 1
jmp 0x477edb
cmp ecx, 0x111
jne 0x477e40
cmp byte [edi + 0x316], 0
mov dword [ebp - 0x90], 0
je 0x477e21
mov eax, edx
shr eax, 0x10
cmp eax, 1
jne 0x477e21
mov edi, dword [ebp - 0xa4]
movzx eax, dx
mov dword [ebp - 0xac], eax
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 0x10]
mov dword [ebp - 0x90], edi
test edi, edi
je 0x477df4
movzx esi, word [eax]
mov dword [ebp - 0xa4], 0xffff
cmp si, word [ebp - 0xa4]
mov esi, dword [ebp - 0x94]
je 0x477df4
movzx esi, word [eax]
mov dword [ebp - 0xa8], esi
mov esi, dword [ebp - 0x94]
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [ebp - 0xac]
cmp cx, word [ebp - 0xa8]
mov ecx, dword [ebp + 0xc]
je 0x477e16
add eax, 4
add edi, 8
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x90], edi
movzx eax, word [eax]
cmp ax, word [ebp - 0xa4]
mov esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa8], esi
mov esi, dword [ebp - 0x94]
jne 0x477db0
xor eax, eax
test eax, 0x100
mov edi, 0
mov eax, 1
cmovne edi, eax
mov dword [ebp - 0x90], edi
mov edi, dword [ebp - 0x9c]
jmp 0x477e26
mov eax, dword [ebp - 0x90]
movzx eax, word [eax]
jmp 0x477df6
mov eax, 1
cmp dword [ebp - 0x90], 0
mov dword [esi], 0
je 0x477e40
jmp 0x477edb
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
cmp ecx, 5
jne 0x477e5b
cmp edx, 1
je 0x477e53
push 1
mov ecx, edi
call fcn.0047d6e0
mov dword [esi], 1
jmp 0x477eb8
cmp ecx, 0x4e
jne 0x477eb8
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax + 8]
cmp ecx, 0xfffffcbe
jne 0x477e87
push 0
mov ecx, edi
call fcn.0047d6e0
mov dword [esi], 0
mov eax, 1
jmp 0x477edb
cmp ecx, 0xfffffcb7
jne 0x477eb8
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x9c], 1
push ecx
push eax
push edx
mov ecx, edi
call fcn.0046ee80
cmp dword [ebp - 0x9c], 0
mov dword [esi], eax
jne 0x477258
push 0
push esi
push dword [ebp - 0x98]
mov ecx, edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00476710
test eax, eax
jne 0x477258
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ab970
mov esp, ebp
pop ebp
ret 0x18
push 1
push 0xc0000005
call fcn.0041b4c0
int3