Function at 0x478060
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, dword [ebp + 0x18]
sub esp, 0x458
push esi
push edi
test eax, eax
jne 0x478082
mov eax, 0x80004003
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x20
mov esi, dword [ebp + 8]
mov edi, 1
add esi, 0xffffffdc
mov dword [eax], 0
mov ecx, esi
mov byte [esp + 0x17], 0
call fcn.00475130
mov eax, dword [ebp + 8]
mov edx, dword [sym.imp.USER32.dll_RedrawWindow]
mov dword [esp + 0x48], edx
mov ecx, dword [eax - 0x20]
mov eax, dword [ebp + 0x10]
test ecx, ecx
je 0x4780d0
cmp ecx, eax
je 0x4780d0
push 0x507
push 0
push 0
push ecx
call edx
mov ecx, esi
call fcn.00477430
mov eax, dword [ebp + 0x10]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x478a3e
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
cmp dword [edi - 0x20], eax
je 0x4780f7
push eax
mov ecx, esi
call fcn.004773c0
mov byte [esp + 0x17], 1
cmp dword [edi + 0xa8], 0
jne 0x478141
push dword [edi - 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push 8
lea ecx, [esp + 0x34]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClassNameW]
test eax, eax
je 0x478133
push str.32770
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x478133
push 0xf
jmp 0x478135
push 5
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [edi + 0xa8], eax
push dword [ebp + 0x24]
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x30]
push eax
push dword [ebp + 0x18]
call fcn.00477a50
mov edi, eax
mov dword [esp + 0x44], edi
test edi, edi
jns 0x47818e
push dword [ebp + 0x18]
mov dword [esp + 0x20], 1
push 0x48efd4
push 1
push 0
push str._i3_
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test edi, edi
js 0x478644
jmp 0x478196
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x10], edi
mov edi, dword [edx]
mov dword [esp + 0x28], edi
test edi, edi
je 0x478647
cmp dword [esi + 0x60], edi
je 0x4781c6
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x60], edi
test ecx, ecx
je 0x4781c6
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esp + 0x28]
lea edi, [esi + 0x64]
xor eax, eax
mov dword [esp + 0x4c], edi
push edi
mov dword [esp + 0x10], eax
mov eax, dword [ecx]
push 0x48ecc0
push ecx
call dword [eax]
mov ecx, dword [edi]
test ecx, ecx
je 0x4785fb
mov eax, dword [ecx]
lea edx, [esi + 0xa0]
push edx
push 1
push ecx
mov dword [esp + 0x30], edx
call dword [eax + 0x58]
test dword [esi + 0xa0], 0x20000
je 0x478253
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
xor ecx, ecx
mov dword [esp + 0xc], ecx
test eax, eax
je 0x47823c
mov ecx, dword [eax]
lea edx, [esp + 0xc]
push edx
push 0x48eeac
push eax
call dword [ecx]
mov ecx, dword [esp + 0xc]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [esp + 0xc], ecx
mov eax, dword [edi]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0xc]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x478253
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x10], 1
je 0x478388
mov ecx, dword [edi]
mov dword [esp + 0xc], 0
test ecx, ecx
je 0x47828b
mov eax, dword [ecx]
lea edx, [esp + 0xc]
push edx
push 0x48efb4
push ecx
call dword [eax]
test eax, eax
jns 0x47834b
mov dword [esp + 0xc], 0
cmp dword [ebp + 0x14], 0
je 0x478388
mov ecx, dword [edi]
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x478388
mov eax, dword [ecx]
lea edx, [esp + 0x10]
push edx
push 0x48efc4
push ecx
call dword [eax]
test eax, eax
js 0x47837a
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47837a
push dword [ebp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov edi, eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4782e3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test edi, edi
jns 0x478377
test dword [esi + 0xa0], 0x20000
je 0x478302
mov eax, dword [esi + 0x64]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov dword [esi + 0xa0], 0
mov ecx, dword [esi + 0x64]
test ecx, ecx
je 0x478320
mov dword [esi + 0x64], 0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esi + 0x60]
test ecx, ecx
je 0x478334
mov dword [esi + 0x60], 0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x478644
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x478644
mov eax, dword [esp + 0xc]
test eax, eax
je 0x47828b
mov edx, dword [ebp + 0x14]
mov ecx, dword [eax]
test edx, edx
je 0x47836c
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
jmp 0x4782e3
push eax
call dword [ecx + 0x20]
mov edi, eax
jmp 0x4782e3
lea edi, [esi + 0x64]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x478388
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test dword [esi + 0xa0], 0x20000
jne 0x4783dc
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
xor ecx, ecx
mov dword [esp + 0xc], ecx
test eax, eax
je 0x4783c5
mov ecx, dword [eax]
lea edx, [esp + 0xc]
push edx
push 0x48eeac
push eax
call dword [ecx]
mov ecx, dword [esp + 0xc]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [esp + 0xc], ecx
mov eax, dword [edi]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0xc]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4783dc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [edi]
lea edx, [esi + 0x70]
push edx
mov dword [esi + 0x90], 0
push 0x48ecb0
mov eax, dword [ecx]
push ecx
mov dword [esp + 0x1c], edx
call dword [eax]
mov dword [esp + 0xc], eax
test eax, eax
jns 0x478445
mov eax, dword [edi]
lea edx, [esi + 0x70]
push edx
push 0x48eca0
push eax
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
test eax, eax
js 0x478421
mov eax, 3
jmp 0x47844a
mov eax, dword [edi]
lea edx, [esi + 0x70]
push edx
push 0x48ec90
push eax
mov ecx, dword [eax]
call dword [ecx]
mov dword [esp + 0xc], eax
test eax, eax
js 0x478450
mov dword [esi + 0x90], 1
jmp 0x478450
mov eax, 7
mov dword [esi + 0x90], eax
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
je 0x478481
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push 0x48ee0c
push eax
call dword [ecx]
mov ecx, dword [esp + 0x20]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [esp + 0x20], ecx
mov edx, dword [edi]
mov edi, dword [ebp + 8]
mov esi, dword [edx]
lea eax, [edi + 0x78]
push eax
push ecx
push edx
call dword [esi + 0x4c]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x4784a9
push dword [esp + 0x20]
mov eax, dword [ecx]
push 0
push 1
push ecx
call dword [eax + 0x1c]
mov eax, dword [esp + 0x4c]
push 0
push str.AXWIN
mov eax, dword [eax]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [esp + 0x24]
test dword [eax], 0x400
jne 0x4785ed
lea esi, [edi - 0x24]
lea edi, [esi + 0xb4]
push edi
push dword [esi + 4]
mov dword [esp + 0x2c], edi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esi + 0xbc]
lea ecx, [esi + 0xac]
sub eax, dword [edi]
lea edx, [esi + 0xa4]
mov dword [ecx], eax
mov eax, dword [esi + 0xc0]
sub eax, dword [esi + 0xb8]
mov dword [esi + 0xb0], eax
call fcn.004776f0
mov eax, dword [esi + 0x64]
lea edx, [esi + 0xa4]
push edx
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [esi + 0x64]
lea edx, [esi + 0xa4]
push edx
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov edi, eax
test edi, edi
jns 0x478551
mov eax, dword [esp + 0x20]
test eax, eax
je 0x478644
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x478644
lea edx, [esi + 0xac]
lea ecx, [esi + 0xa4]
call fcn.00477670
mov edi, dword [esp + 0x24]
mov ecx, esi
mov eax, dword [esi + 0xac]
add eax, dword [edi]
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0xb0]
add eax, dword [esi + 0xb8]
mov dword [esi + 0xc0], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
call eax
xor ecx, ecx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x4785b7
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push 0x48eeac
push eax
call dword [ecx]
mov ecx, dword [esp + 0x10]
xor edx, edx
test eax, eax
cmovs ecx, edx
mov dword [esp + 0x10], ecx
mov eax, dword [esi + 0x64]
push edi
push dword [esi + 4]
mov edx, dword [eax]
push 0
push ecx
push 0
push 0xfffffffffffffffb
push eax
call dword [edx + 0x2c]
push 0x507
push 0
push 0
push dword [esi + 4]
mov dword [esp + 0x1c], eax
call dword [esp + 0x58]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4785ed
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4785fb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x18]
push edx
push 0x48efe4
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x24], 0
call dword [eax]
mov esi, dword [esp + 0x18]
test esi, esi
je 0x478640
mov ecx, dword [ebp + 8]
mov edi, dword [esi]
add ecx, 0xffffffdc
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push eax
push esi
call dword [edi + 0xc]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x478640
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [esp + 0xc]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 8]
movups xmm0, xmmword [eax]
movups xmmword [esi + 0x5c], xmm0
test edi, edi
js 0x478a09
mov ecx, dword [edx]
test ecx, ecx
je 0x4786d2
cmp dword [ebp + 0x20], 0
je 0x4786d2
mov eax, dword [ecx]
lea edx, [esp + 0x10]
push edx
push 0x48ef90
push ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], 0
call dword [eax]
test eax, eax
js 0x4786b3
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edx
lea edx, [esi + 0x5c]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x4786b3
mov eax, dword [esp + 0x18]
lea ecx, [esi + 0x70]
push ecx
push dword [ebp + 0x20]
mov edx, dword [eax]
push eax
call dword [edx + 0x14]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4786c1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4786cf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebp + 0x18]
cmp dword [esp + 0x1c], 0
je 0x478a03
cmp dword [edx], 0
je 0x478a03
push 0xfffffffffffffff0
push dword [esi - 0x20]
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x300000
jne 0x478701
or dword [esi + 0xbc], 8
jmp 0x478732
push 0xfffffffffffffff0
push dword [esi - 0x20]
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xffcfffff
push eax
push 0xfffffffffffffff0
push dword [esi - 0x20]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 0x37
push 0
push 0
push 0
push 0
push 0
push dword [esi - 0x20]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebp + 0x18]
mov esi, dword [eax]
test esi, esi
je 0x478741
mov eax, dword [esi]
push esi
call dword [eax + 4]
cmp dword [esp + 0x1c], 1
jne 0x478931
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], 0
test edi, 0xffff0000
jne 0x47881a
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x7f
lea ecx, [esp + 0x64]
push ecx
movzx ecx, di
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
push ecx
push eax
call edi
push 0x7f
lea eax, [esp + 0x164]
push eax
push 0x304
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call edi
push 0x200
lea eax, [esp + 0x264]
push 0
push eax
call sym.GUIToGo.exe_memset
mov edi, dword [sym.imp.KERNEL32.dll_FormatMessageW]
lea eax, [esp + 0x26c]
add esp, 0xc
push 0
push 0xff
push eax
push 0
push dword [esp + 0x54]
push 0
push 0x1200
call edi
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x260]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
push 0
lea eax, [esp + 0x18]
push eax
push 0
push 0
lea eax, [esp + 0x174]
push eax
push 0x2500
call edi
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x478822
xor ecx, ecx
jmp 0x478836
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x478827
sub ecx, edx
sar ecx, 1
add ecx, ecx
push ecx
push 0x42
mov dword [esp + 0x34], ecx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esp + 0x24], eax
test eax, eax
je 0x478914
push eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, eax
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x47886e
xor ecx, ecx
jmp 0x4788a5
test ecx, ecx
je 0x478890
push eax
test edi, edi
je 0x478885
push edi
push ecx
call fcn.00444710
add esp, 0xc
xor ecx, ecx
jmp 0x4788a5
push 0
push ecx
call sym.GUIToGo.exe_memset
add esp, 0xc
call sym.GUIToGo.exe__errno
mov dword [eax], 0x16
call fcn.0044809e
mov ecx, 0x16
call fcn.00474030
mov edi, dword [esp + 0x24]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea eax, [esp + 0x18]
push eax
push 1
push edi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov edi, eax
test edi, edi
js 0x478904
mov eax, dword [esi]
lea ecx, [esp + 0x1c]
push ecx
push 0x48efb4
push esi
mov dword [esp + 0x28], 0
call dword [eax]
mov edi, eax
test edi, edi
js 0x4788f6
mov eax, dword [esp + 0x1c]
push dword [esp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov edi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x478904
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x478919
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x478919
mov edi, 0x8007000e
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4789f2
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x4789f2
mov eax, dword [esi]
lea ecx, [esp + 0xc]
push ecx
push 0x48ed30
push esi
mov dword [esp + 0x18], 0
call dword [eax]
cmp dword [esp + 0xc], 0
je 0x4789f2
lea eax, [esp + 0x30]
xorps xmm0, xmm0
push eax
movaps xmmword [esp + 0x34], xmm0
call dword [sym.imp.OLEAUT32.dll_VariantClear]
xor eax, eax
mov word [esp + 0x50], ax
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
js 0x478a48
mov eax, 8
mov word [esp + 0x50], ax
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0x58], eax
test eax, eax
jne 0x4789a5
cmp dword [ebp + 0xc], eax
jne 0x478a4e
mov eax, dword [esp + 0xc]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa4]
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x30]
push edx
push edx
push edx
mov ecx, dword [eax]
push edx
lea edx, [esp + 0x60]
push edx
push eax
call dword [ecx + 0xd0]
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4789f2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test esi, esi
je 0x4789fc
mov eax, dword [esi]
push esi
call dword [eax + 8]
test edi, edi
js 0x478a09
mov esi, dword [ebp + 8]
cmp dword [esi + 0x3c], 0
jne 0x478a3e
mov esi, dword [ebp + 8]
lea ecx, [esi - 0x24]
call fcn.00475130
mov eax, esi
mov eax, dword [eax - 0x20]
test eax, eax
je 0x478a3e
push 0x507
push 0
push 0
push eax
call dword [esp + 0x58]
test edi, edi
jns 0x478a3e
cmp byte [esp + 0x17], 0
je 0x478a3e
lea ecx, [esi - 0x24]
call fcn.00477430
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x20
push eax
call fcn.00474010
mov eax, 0xa
mov dword [esp + 0x58], 0x8007000e
push 0x8007000e
mov word [esp + 0x54], ax
call fcn.00474010
int3