Function at 0x40e9d0
Capabilities:
Get common file path
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f0
mov eax, dword [0x4a9bf0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4bd734]
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x2bc], edx
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x288], ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x2a4], edi
test eax, eax
je 0x40eefd
mov dword [ebp - 0x250], 0
mov ecx, 0x490b7c
mov eax, dword [eax + 0x10]
mov esi, ecx
mov dword [ebp - 0x2ac], eax
mov eax, dword [sym.imp.USER32.dll_GetClientRect]
mov dword [ebp - 0x2d4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x2d8], 0x490b7c
mov dword [ebp - 0x2a0], ecx
mov dword [ebp - 0x2c4], ecx
mov dword [ebp - 0x290], ecx
mov dword [ebp - 0x2c0], ecx
mov dword [ebp - 0x2b0], ecx
mov dword [ebp - 0x2b4], ecx
mov dword [ebp - 0x29c], esi
mov dword [ebp - 0x294], esi
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2ec], ecx
mov dword [ebp - 0x2e8], ecx
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x298], ecx
mov dword [ebp - 0x2c8], ecx
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2cc], 0
test edx, edx
je 0x40eae3
test eax, eax
jne 0x40eae3
push 0xf86
push str.D:MyProjectsProPilotLibLibMain.c
push fcn.00466ae4
push eax
push edx
lea eax, [ebp - 0x250]
push eax
call fcn.0040e4d0
mov eax, dword [ebp - 0x250]
add esp, 0x18
mov dword [ebp - 0x28c], eax
jmp 0x40ec46
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
push 0
push edi
lea esi, [eax + 1]
call fcn.004158f0
push esi
call fcn.0046dc45
add esp, 0xc
mov dword [ebp - 0x250], eax
push esi
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea esi, [edi + 0x44]
push esi
push ebx
call dword [ebp - 0x2d4]
mov eax, dword [edi + 0x4c]
mov ecx, 0x480834
sub eax, dword [esi]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x50]
sub eax, dword [edi + 0x48]
cmp dword [ebp + 0x14], 0
mov dword [edi + 0x24], eax
mov dword [ebp - 0x290], ecx
mov dword [ebp - 0x2b8], 0x480838
je 0x40ec2e
mov esi, dword [ebp - 0x2bc]
test esi, esi
je 0x40ec2e
cmp byte [esi], 0
je 0x40ec2e
push 0x3b
push esi
call fcn.0046e733
add esp, 8
test eax, eax
je 0x40eb83
nop
mov cl, byte [eax]
test cl, cl
je 0x40eb83
cmp cl, 0x3b
jne 0x40eb7e
mov byte [eax], 0x20
add eax, 1
jne 0x40eb70
cmp byte [esi], 0x7c
mov ebx, dword [ebp - 0x250]
je 0x40eba1
cmp byte [ebx], 0x7c
jne 0x40eba1
push 0x7c
push ebx
call fcn.0046f111
add esp, 8
lea ebx, [eax + 1]
push 0x3b
push ebx
call fcn.0046e733
add esp, 8
mov byte [ebx], 0
test eax, eax
mov ecx, esi
mov edx, 0x490b7c
cmovne edx, eax
mov dword [ebp - 0x28c], edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ebc4
sub ecx, esi
mov esi, edx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x40ebd2
sub esi, edx
sub esi, dword [ebp - 0x250]
add esi, ecx
add esi, ebx
lea eax, [esi + 1]
push eax
call fcn.0046dc45
push dword [ebp - 0x28c]
mov ebx, eax
push dword [ebp - 0x2bc]
mov dword [ebp - 0x2e0], ebx
mov byte [ebx + esi], 0
push dword [ebp - 0x250]
push 0x48083c
push esi
push ebx
call fcn.0040d540
push dword [ebp - 0x250]
call fcn.00468056
add esp, 0x20
mov dword [ebp - 0x250], ebx
jmp 0x40ec3a
mov ebx, dword [ebp - 0x250]
mov dword [ebp - 0x2e0], ebx
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x28c], ebx
push 0x3b
push eax
xor ebx, ebx
call fcn.0046e733
mov esi, eax
add esp, 8
test esi, esi
je 0x40ed63
mov edi, 0x490b7c
mov byte [esi], 0
inc esi
cmp ebx, 0xf
ja case.default.0x40ec6f
jmp dword [ebx*4 + 0x410080]
mov dword [ebp - 0x2d8], esi
jmp 0x40ed3d
mov dword [ebp - 0x290], esi
mov dword [ebp - 0x2c0], esi
jmp 0x40ed3d
mov dword [ebp - 0x2cc], 1
mov dword [ebp - 0x2b0], esi
jmp 0x40ed3d
mov dword [ebp - 0x2b4], esi
jmp 0x40ed3d
mov dword [ebp - 0x29c], esi
jmp 0x40ed3d
mov dword [ebp - 0x294], esi
jmp 0x40ed3d
mov dword [ebp - 0x298], esi
jmp 0x40ed3d
test edi, edi
je 0x40ecd6
cmp byte [edi], 0
jne 0x40ed3d
mov edi, esi
jmp 0x40ed3d
mov dword [ebp - 0x2b8], esi
jmp 0x40ed3d
mov dword [ebp - 0x2a0], esi
jmp 0x40ed3d
mov dword [ebp - 0x2c4], esi
jmp 0x40ed3d
mov dword [ebp - 0x2d0], esi
jmp 0x40ed3d
mov dword [ebp + ebx*4 - 0x320], esi
jmp 0x40ed3d
mov eax, dword [0x4bd720]
test eax, eax
je 0x40ed14
mov ecx, dword [eax + 0x190]
jmp 0x40ed1a
mov ecx, dword [0x4bd724]
push str.Unknown_button_option__s
push esi
push str.Unknown_button_option__s
push eax
push ecx
push 0
push 0xfbb
push str.D:MyProjectsProPilotLibLibMain.c
push 3
call fcn.00430d40
add esp, 0x24
push 0x3b
push esi
inc ebx
call fcn.0046e733
mov esi, eax
add esp, 8
test esi, esi
jne 0x40ec62
mov dword [ebp - 0x2c8], edi
mov edi, dword [ebp - 0x2a4]
test ebx, ebx
jne 0x40ed9c
cmp byte [edi + 0x6c], 0
lea edx, [edi + 0x6c]
je 0x40ed9c
mov ebx, dword [ebp - 0x28c]
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x40ed76
push ebx
push 0x29a
push 0xc
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x410054
mov ebx, dword [ebp - 0x2d8]
xor edx, edx
mov al, byte [edx + ebx]
test al, al
je 0x40edb7
mov byte [edi + edx + 0x64], al
inc edx
cmp edx, 8
jl 0x40eda4
jmp 0x40edcf
mov eax, 8
lea ecx, [edx + 0x64]
sub eax, edx
add ecx, edi
push eax
push 0x30
push ecx
call fcn.00464960
add esp, 0xc
cmp dword [ebp - 0x2cc], 0
mov eax, dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x2cc], eax
jne 0x40ef10
cmp dword [ebp - 0x2bc], 0
je 0x40edfa
cmp dword [ebp + 0x14], 0
je 0x40ef10
push 0xfffffffffffffff0
push dword [ebp - 0x288]
call eax
mov esi, eax
lea eax, [ebp - 0x38]
push 0x32
push eax
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0x38]
push str.button
push eax
call fcn.0046ee32
add esp, 8
test eax, eax
jne 0x40ee45
mov eax, esi
and al, 0xf
cmp al, 1
jbe 0x40ef10
test esi, 0x1000
jne 0x40ef10
lea eax, [edi + 0x44]
xorps xmm0, xmm0
push eax
push dword [ebp - 0x288]
movups xmmword [eax], xmm0
lea esi, [edi + 0x54]
movups xmmword [esi], xmm0
call dword [ebp - 0x2d4]
push esi
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
push esi
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_GetParent]
push eax
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov esi, dword [ebp - 0x2c0]
cmp byte [esi], 0
je 0x40eeca
push 2
push 0x490d14
push esi
call fcn.00466b72
add esp, 0xc
test eax, eax
jne 0x40eebe
lea eax, [edi + 0x30]
push eax
lea eax, [esi + 2]
push 0x490d18
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40eeca
push esi
call fcn.00468c82
add esp, 4
mov dword [edi + 0x30], eax
cmp byte [ebx], 0
jne 0x40eed8
cmp dword [ebp - 0x2bc], 0
je 0x40eeea
push dword [ebp - 0x28c]
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x40eefd
push eax
call fcn.00468056
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046300c
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x28c]
movsd xmm0, qword [0x480de0]
movsd qword [ebp - 0x2dc], xmm0
cmp byte [esi], 0
je 0x40f3ae
mov ebx, dword [ebp - 0x298]
cmp byte [ebx], 0
jne 0x40f3ae
mov ebx, dword [ebp - 0x29c]
cmp byte [ebx], 0
jne 0x40f3ae
cmp dword [0x4bd784], 0
jne 0x40f3ae
cmp dword [edi + 0x20], 0x48
jl 0x40f3ae
push 0x480868
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
jne 0x40efb5
mov ecx, dword [0x4bd734]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40efa7
mov esi, 0x480878
mov dword [ebp - 0x298], str.okcancelbmp
mov dword [ebp - 0x29c], esi
mov dword [ebp - 0x294], esi
mov esi, dword [ebp - 0x28c]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x2ac], edx
jmp 0x40f0f8
push str.Save
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
jne 0x40f00b
mov ecx, dword [0x4bd734]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40effd
mov dword [ebp - 0x298], str.savebmp
mov esi, 0x480894
mov dword [ebp - 0x29c], esi
mov esi, 0x480878
mov dword [ebp - 0x294], esi
mov esi, dword [ebp - 0x28c]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x2ac], edx
jmp 0x40f0f8
push str.Undo
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
jne 0x40f039
mov ecx, dword [0x4bd734]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40effd
mov dword [ebp - 0x298], str.undobmp
jmp 0x40efe1
push str.Cancel
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
jne 0x40f087
mov ecx, dword [0x4bd734]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40effd
mov edx, dword [ecx + 0x14]
mov esi, 0x480894
mov dword [ebp - 0x29c], esi
mov dword [ebp - 0x294], esi
mov esi, dword [ebp - 0x28c]
mov dword [ebp - 0x298], str.okcancelbmp
mov dword [ebp - 0x2ac], edx
jmp 0x40f0f8
push str.Exit
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
jne 0x40f15b
mov edx, dword [0x4bd734]
mov eax, dword [edx + 4]
test eax, 0x400
jne 0x40f0ef
mov ecx, dword [0x4bd780]
test ecx, ecx
je 0x40f0c9
mov dword [ebp - 0x298], str.exitbmp
cmp ecx, 0x100
jl 0x40f0d3
mov dword [ebp - 0x298], str.exitbmp16
mov esi, 0x480894
mov dword [ebp - 0x29c], esi
mov esi, 0x480878
mov dword [ebp - 0x294], esi
mov esi, dword [ebp - 0x28c]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x2ac], ecx
and eax, 0x900000
mov dword [ebp - 0x2a0], 0x480880
mov ecx, 0x48087c
mov dword [ebp - 0x290], ecx
cmp eax, 0x900000
jne 0x40f15b
push str.___s
push esi
push str.___s
lea eax, [ebp - 0x22c]
push 0x12c
push eax
call fcn.0040ad10
add esp, 0x14
push eax
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, 0x480880
mov dword [ebp - 0x2a0], ecx
mov ecx, 0x48087c
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x2b0]
cmp byte [eax], 0
je 0x40f175
mov eax, dword [ebp - 0x2b4]
cmp byte [eax], 0
jne 0x40f3ae
push 0x480868
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f399
push str.Start
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f399
push str.Cancel
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f383
push str.Exit
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f383
push str.Close
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f383
push str.Delete
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f383
push str.Remove
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f383
push str.Stop
push esi
call fcn.0046ee32
add esp, 8
test eax, eax
je 0x40f383
cmp dword [0x4bd784], 0
je 0x40f263
push str._06x
push 0x12
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push str._06x
lea eax, [ebp - 0x100]
push 0x64
push eax
call fcn.0040ad10
add esp, 0x14
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], eax
jmp 0x40f3ae
cmp dword [ebp - 0x2bc], 0
je 0x40f276
cmp dword [ebp + 0x14], 0
je 0x40f3ae
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
push 0xf
call esi
push 0x12
mov ebx, eax
call esi
mov edx, eax
movsd xmm3, qword [ebp - 0x2dc]
sar eax, 0x10
movzx eax, al
movsd xmm2, qword [0x480da8]
push str._06x
mov dword [ebp - 0x2a4], edx
movd xmm1, eax
mov eax, ebx
sar eax, 0x10
movzx eax, al
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movzx ecx, al
mov eax, edx
sar eax, 8
or ecx, 0x200
movzx eax, al
shl ecx, 8
movd xmm1, eax
mov eax, ebx
sar eax, 8
movzx eax, al
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
movzx eax, dl
shl ecx, 8
movd xmm1, eax
movzx eax, bl
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movzx eax, al
or ecx, eax
lea eax, [ebp - 0x100]
push ecx
push str._06x
push 0x64
push eax
call fcn.0040ad10
push str._06x
push dword [ebp - 0x2a4]
mov dword [ebp - 0x2b0], eax
lea eax, [ebp - 0x9c]
push str._06x
push 0x64
push eax
call fcn.0040ad10
add esp, 0x28
mov dword [ebp - 0x2b4], eax
jmp 0x40f3ae
mov dword [ebp - 0x2b0], str.202080
mov dword [ebp - 0x2b4], str.2020ff
jmp 0x40f3ae
mov ecx, str.b000
mov dword [ebp - 0x2b0], str.6000
mov dword [ebp - 0x2b4], ecx
mov ebx, dword [ebp - 0x290]
cmp byte [ebx], 0
je 0x40f3f2
push 2
push 0x490d14
push ebx
call fcn.00466b72
add esp, 0xc
test eax, eax
jne 0x40f3e6
lea eax, [edi + 0x30]
push eax
lea eax, [ebx + 2]
push 0x490d18
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40f3f2
push ebx
call fcn.00468c82
add esp, 4
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x40f417
push dword [ebp - 0x28c]
push 0x29a
push 0xc
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40eeea
cmp dword [0x4bd784], 0
mov ebx, dword [ebp - 0x28c]
je 0x40f433
cmp byte [ebx], 0
je 0x40f433
or eax, 0x82040
mov dword [edi + 0x30], eax
push 0x26
push ebx
call fcn.0046e733
add esp, 8
test eax, eax
je 0x40f449
movsx eax, byte [eax + 1]
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x234], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x230], eax
cmp byte [ebx], 0
je 0x40f473
mov edx, edi
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx + 0x6b], al
test al, al
jne 0x40f466
mov ecx, dword [ebp - 0x2b8]
cmp byte [ecx], 0
je 0x40f498
mov eax, dword [ebp - 0x298]
cmp byte [eax], 0
je 0x40f498
push ecx
call fcn.00468c82
add esp, 4
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x2a0]
cmp byte [eax], 0
je 0x40f4af
push eax
call fcn.00468c82
add esp, 4
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x2c4]
cmp byte [eax], 0
je 0x40f4c6
push eax
call fcn.00468c82
add esp, 4
mov dword [edi + 0x1c], eax
push 0x63
push dword [ebp - 0x2c8]
lea ebx, [edi + 0x134]
push ebx
call fcn.0046f2c5
mov ecx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 0xc
cmp byte [ebx], 0
mov dword [ebp - 0x290], ecx
mov ecx, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [ebp - 0x2c4], ecx
mov ecx, dword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [ebp - 0x2c0], ecx
mov ecx, dword [sym.imp.USER32.dll_GetParent]
mov byte [edi + 0x197], 0
mov eax, dword [edi + 0x1a8]
mov dword [ebp - 0x2a0], ecx
je 0x40f73c
test eax, eax
je 0x40f538
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
push eax
call esi
push dword [edi + 0x1b8]
call esi
mov eax, dword [0x4bd734]
push 0
mov esi, dword [sym.imp.USER32.dll_CreateWindowExA]
push dword [eax + 0x10]
push 0
push dword [ebp - 0x288]
push 0xa
push 0xa
push SysReAllocString
push SysReAllocString
push SysReAllocString
push 0
push str.tooltips_class32
push 0
call esi
mov dword [edi + 0x1a8], eax
mov eax, dword [0x4bd734]
push 0
push dword [eax + 0x10]
push 0
push dword [ebp - 0x288]
call dword [ebp - 0x2a0]
push eax
push 0xa
push 0xa
push SysReAllocString
push SysReAllocString
push SysReAllocString
push 0
push str.tooltips_class32
push 0
call esi
mov esi, dword [ebp - 0x288]
xorps xmm0, xmm0
push esi
mov dword [edi + 0x1b8], eax
movlpd qword [ebp - 0x274], xmm0
movlpd qword [ebp - 0x26c], xmm0
mov dword [ebp - 0x264], 0
movlpd qword [ebp - 0x25c], xmm0
mov dword [ebp - 0x284], 0x30
mov dword [ebp - 0x280], 0x11
call dword [ebp - 0x2a0]
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x284]
push eax
push 0
push 0x404
push dword [edi + 0x1a8]
mov dword [ebp - 0x278], esi
mov dword [ebp - 0x260], ebx
call dword [ebp - 0x290]
push 0xc8
push 3
push 0x403
push dword [edi + 0x1a8]
call dword [ebp - 0x290]
push 0x32
push 1
push 0x403
push dword [edi + 0x1a8]
call dword [ebp - 0x290]
push 0xffffffffffffffff
push 2
push 0x403
push dword [edi + 0x1a8]
call dword [ebp - 0x290]
xorps xmm0, xmm0
mov dword [ebp - 0x284], 0x30
push esi
movlpd qword [ebp - 0x27c], xmm0
movlpd qword [ebp - 0x274], xmm0
movlpd qword [ebp - 0x26c], xmm0
movlpd qword [ebp - 0x264], xmm0
movlpd qword [ebp - 0x25c], xmm0
mov dword [ebp - 0x280], 0x10
call dword [ebp - 0x2a0]
xorps xmm0, xmm0
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x260], ebx
movups xmmword [ebp - 0x274], xmm0
lea eax, [ebp - 0x274]
push eax
push esi
call dword [ebp - 0x2c4]
push 2
lea eax, [ebp - 0x274]
push eax
push esi
call dword [ebp - 0x2a0]
push eax
push 0
call dword [ebp - 0x2c0]
mov ebx, dword [ebp - 0x290]
lea eax, [ebp - 0x284]
push eax
push 0
push 0x404
push dword [edi + 0x1b8]
call ebx
push 0xc8
push 3
push 0x403
push dword [edi + 0x1b8]
call ebx
push 0x32
push 1
push 0x403
push dword [edi + 0x1b8]
call ebx
push 0xffffffffffffffff
push 2
push 0x403
push dword [edi + 0x1b8]
call ebx
jmp 0x40f765
test eax, eax
je 0x40f765
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
push eax
call esi
push dword [edi + 0x1b8]
call esi
mov dword [edi + 0x1a8], 0
mov dword [edi + 0x1b8], 0
mov eax, dword [ebp - 0x294]
mov ebx, dword [ebp - 0x298]
mov edx, dword [ebp - 0x29c]
mov esi, edx
cmp byte [eax], 0
cmovne esi, eax
mov al, byte [ebx]
mov dword [ebp - 0x294], esi
test al, al
jne 0x40f78f
cmp byte [edx], al
je 0x40f7f1
mov ecx, dword [edi + 0x198]
test ecx, ecx
je 0x40f7b2
push ecx
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
mov edx, dword [ebp - 0x29c]
mov dword [edi + 0x198], 0
mov al, byte [ebx]
test al, al
jne 0x40f7ba
cmp byte [edx], al
je 0x40f7f1
cmp dword [edi + 0x1ac], 0
lea esi, [edi + 0x1ac]
je 0x40f7eb
mov ebx, 3
nop
mov eax, dword [esi]
test eax, eax
je 0x40f7e3
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esi], 0
add esi, 4
sub ebx, 1
jne 0x40f7d0
mov esi, dword [ebp - 0x294]
test dword [edi + 0x30], 0x40000
je 0x40f871
mov eax, dword [0x4bd734]
test eax, eax
je 0x40f852
mov ecx, dword [eax + 4]
test ecx, 0x40000000
je 0x40f852
mov edx, dword [eax + 0x1f0c]
test edx, edx
je 0x40f825
mov dword [0x4bd738], edx
mov ecx, dword [eax + 4]
test ecx, 0x40000000
je 0x40f852
mov eax, dword [eax + 0x1f28]
test eax, eax
je 0x40f852
push 0x10a3
push str.D:MyProjectsProPilotLibLibMain.c
push 1
push str.NF_
push dword [ebp - 0x288]
call eax
jmp 0x40f86e
push 0x10a3
push str.D:MyProjectsProPilotLibLibMain.c
push 1
push str.NF_
push dword [ebp - 0x288]
call fcn.0042b4e0
add esp, 0x14
test dword [edi + 0x30], 0x800
mov ecx, dword [sym.imp.USER32.dll_LoadImageA]
mov dword [ebp - 0x2b8], ecx
je 0x40f929
cmp byte [esi], 0
je 0x40f8a5
mov eax, dword [0x4bd734]
push 0
push 0
push 0
push 2
push esi
push dword [eax + 0x10]
call ecx
mov dword [edi + 0xc], eax
cmp dword [edi + 0xc], 0
jne 0x40f929
push 0x104
lea eax, [ebp - 0x218]
xor ebx, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x40f926
lea ecx, [ebp - 0x218]
dec ecx
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x40f8d0
mov eax, dword [str.winhlp32.exe]
mov dword [ecx], eax
mov eax, dword [0x480828]
mov dword [ecx + 4], eax
mov eax, dword [0x48082c]
mov dword [ecx + 8], eax
mov ax, word [0x480830]
mov word [ecx + 0xc], ax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x40f920
push 0x6a
push esi
call dword [sym.imp.USER32.dll_LoadCursorA]
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 0x294]
mov dword [edi + 0xc], ebx
mov ebx, dword [ebp - 0x298]
xorps xmm0, xmm0
movsd qword [ebp - 0x2a8], xmm0
cmp byte [ebx], 0
je 0x40fd39
mov eax, 0x7830
cmp word [ebx], ax
jne 0x40f9fa
lea esi, [ebx + 2]
push 0xffffffffffffffff
push esi
call fcn.0042dcd0
add esp, 8
test eax, eax
je 0x40f9fa
push 0xffffffffffffffff
push esi
call fcn.0042dd40
add esp, 8
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Duplicate]
lea ecx, [ebp - 0x230]
mov dword [edi + 0x198], eax
push ecx
lea ecx, [ebp - 0x234]
push ecx
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
mov eax, dword [0x4bd734]
cmp dword [eax + 0xdd0], 0
je 0x40fd8f
push 0xffffffffffffffff
push dword [edi + 0x198]
call fcn.00410b60
mov eax, dword [0x4bd734]
add esp, 8
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x40f9dd
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call ebx
mov eax, dword [0x4bd734]
mov dword [eax + 0xdcc], 0
push dword [0x4bd778]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x4bd734]
mov dword [ecx + 0xdcc], eax
jmp 0x40fd8f
mov esi, dword [ebp - 0x29c]
cmp byte [esi], 0
je 0x40fd8f
mov ecx, ebx
nop dword [eax + eax]
mov al, byte [ecx]
test al, al
je 0x40fa2f
cmp al, 0x30
jl 0x40fa1e
cmp al, 0x39
jle 0x40fa2a
cmp al, 0x2e
je 0x40fa2a
cmp al, 0x2c
jne 0x40fb2e
add ecx, 1
jne 0x40fa10
push ebx
call fcn.00468c82
add esp, 4
movzx eax, ax
push 0x2000
push 0
push 0
push 0
push eax
push dword [ebp - 0x2ac]
call dword [ebp - 0x2b8]
mov dword [ebp - 0x254], eax
test eax, eax
jne 0x40faa7
mov ecx, ebx
nop
mov al, byte [ecx]
test al, al
je 0x40fa7b
cmp al, 0x30
jl 0x40fa6e
cmp al, 0x39
jle 0x40fa76
cmp al, 0x2e
je 0x40fa76
cmp al, 0x2c
jne 0x40fa87
add ecx, 1
jne 0x40fa60
push ebx
call fcn.00468c82
add esp, 4
movzx ebx, ax
mov eax, dword [0x4bd734]
push 0x2000
push 0
push 0
push 0
push ebx
push dword [eax + 0x14]
call dword [ebp - 0x2b8]
mov dword [ebp - 0x254], eax
lea ecx, [ebp - 0x24c]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x234], eax
mov eax, dword [0x4bd734]
cmp dword [eax + 0xdd0], 0
je 0x40fb35
push 8
push 0x10
push dword [ebp - 0x254]
push 0
push 0
call fcn.00410950
mov eax, dword [0x4bd734]
add esp, 0x14
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x40fb14
push eax
call ebx
mov eax, dword [0x4bd734]
mov dword [eax + 0xdcc], 0
push dword [0x4bd778]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x4bd734]
mov dword [ecx + 0xdcc], eax
jmp 0x40fb3b
mov eax, ebx
jmp 0x40fa3b
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
push 0
push 0
push 0
push 0
push esi
call fcn.00468c82
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.0041fc00
add esp, 0x18
mov dword [edi + 0x1ac], eax
push 0
push 0
push 0
push 0
push dword [ebp - 0x294]
call fcn.00468c82
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.0041fc00
mov ecx, dword [ebp - 0x2d0]
add esp, 0x18
mov dword [edi + 0x1b0], eax
mov eax, dword [0x4bd734]
cmp byte [ecx], 0
je 0x40fc00
cmp dword [eax + 0xdd0], 0
jne 0x40fbc2
test dword [edi + 0x30], 0x200000
jne 0x40fbb7
test dword [eax + 4], 0x10000
je 0x40fbc2
push 0
push 0
push 0
push 0
push ecx
jmp 0x40fc2c
push 0
push 0
push 0
push 0
push ecx
call fcn.00468c82
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.0041fc00
mov esi, eax
push esi
call fcn.00414ab0
add esp, 0x1c
mov dword [edi + 0x1b4], eax
test esi, esi
je 0x40fcb1
push esi
call ebx
jmp 0x40fcb1
cmp dword [eax + 0xdd0], 0
jne 0x40fc9d
test dword [edi + 0x30], 0x200000
jne 0x40fc23
test dword [eax + 4], 0x10000
je 0x40fc9d
push 0
push 0
push 0
push 0
push esi
call fcn.00468c82
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.0041fc00
movsd xmm0, qword [ebp - 0x2a8]
add esp, 0x10
mov dword [edi + 0x1b4], eax
movsd qword [esp], xmm0
push 3
push eax
call fcn.00424380
movsd xmm0, qword [ebp - 0x2a8]
add esp, 8
movsd qword [esp], xmm0
push 2
push dword [edi + 0x1b4]
call fcn.00424380
movsd xmm0, qword [ebp - 0x2dc]
add esp, 8
movsd qword [esp], xmm0
push 0
push dword [edi + 0x1b4]
call fcn.00424380
add esp, 0x10
jmp 0x40fcb1
push dword [edi + 0x1ac]
call fcn.00414ab0
add esp, 4
mov dword [edi + 0x1b4], eax
mov eax, dword [0x4bd734]
cmp dword [eax + 0xdd0], 0
jne 0x40fd20
test dword [edi + 0x30], 0x4000
jne 0x40fd20
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
movsd qword [esp], xmm0
push 0
push dword [edi + 0x1ac]
call fcn.00424380
mov ecx, dword [edi + 0x30]
add esp, 0x10
test ecx, 0x400000
jne 0x40fd20
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
mov eax, dword [edi + 0x1b0]
movsd qword [esp], xmm0
test ecx, 0x200
je 0x40fd15
push 6
jmp 0x40fd17
push 1
push eax
call fcn.00424380
add esp, 0x10
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x40fd8f
push eax
call ebx
mov dword [ebp - 0x254], 0
jmp 0x40fd8f
mov eax, dword [ebp - 0x29c]
cmp byte [eax], 0
je 0x40fd8f
push eax
call fcn.00468c82
push esi
mov dword [edi + 0x1f0], eax
call fcn.00468c82
push dword [ebp - 0x2d0]
mov dword [edi + 0x1f4], eax
call fcn.00468c82
add esp, 0xc
mov dword [edi + 0x1f8], eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x234]
push eax
mov eax, dword [0x4bd734]
push dword [eax + 0xe14]
call dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
xor ebx, ebx
lea esi, [edi + 0x1c8]
mov dword [ebp - 0x2c8], ebx
nop dword [eax]
mov ebx, dword [ebp + ebx*4 - 0x2f0]
cmp byte [ebx], 0
je 0x40ff3d
push 0x480894
push ebx
call fcn.0046ed36
add esp, 8
test eax, eax
je 0x40ff3d
lea eax, [ebp - 0x254]
push eax
push 0x490d18
push ebx
call fcn.00401070
add esp, 0xc
test eax, eax
je 0x40fdf6
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x40fdf6
push eax
push 0
call fcn.00414970
add esp, 8
jmp 0x40fe3f
mov ecx, ebx
test ecx, ecx
je 0x40fe1b
nop dword [eax]
mov al, byte [ecx]
test al, al
je 0x40fe1b
cmp al, 0x30
jl 0x40fe0e
cmp al, 0x39
jle 0x40fe16
cmp al, 0x2e
je 0x40fe16
cmp al, 0x2c
jne 0x40fe27
add ecx, 1
jne 0x40fe00
push ebx
call fcn.00468c82
add esp, 4
movzx ebx, ax
push 0x2000
push 0
push 0
push 0
push ebx
push dword [ebp - 0x2ac]
call dword [ebp - 0x2b8]
mov dword [esi - 8], eax
test eax, eax
je 0x40ff3d
push eax
push 0
call fcn.00414970
mov dword [esi - 4], eax
add esp, 8
mov eax, dword [0x4bd734]
cmp dword [eax + 0xdd0], 0
jne 0x40fed0
test dword [edi + 0x30], 0x200000
jne 0x40fe78
test dword [eax + 4], 0x10000
je 0x40fed0
push dword [esi - 8]
push 0
call fcn.00414970
movsd xmm0, qword [ebp - 0x2a8]
movsd qword [esp], xmm0
push 3
push eax
mov dword [esi], eax
call fcn.00424380
movsd xmm0, qword [ebp - 0x2a8]
add esp, 8
movsd qword [esp], xmm0
push 2
push dword [esi]
call fcn.00424380
movsd xmm0, qword [ebp - 0x2dc]
add esp, 8
movsd qword [esp], xmm0
push 0
push dword [esi]
call fcn.00424380
add esp, 0x10
jmp 0x40fedd
push dword [esi - 8]
call fcn.00414ab0
add esp, 4
mov dword [esi], eax
mov eax, dword [0x4bd734]
cmp dword [eax + 0xdd0], 0
jne 0x40ff3d
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
movsd qword [esp], xmm0
push 0
push dword [esi - 8]
call fcn.00424380
mov ecx, dword [edi + 0x30]
add esp, 0x10
test ecx, 0x400000
jne 0x40ff3d
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
mov eax, dword [esi - 4]
movsd qword [esp], xmm0
test ecx, 0x200
je 0x40ff32
push 6
jmp 0x40ff34
push 1
push eax
call fcn.00424380
add esp, 0x10
mov ebx, dword [ebp - 0x2c8]
add esi, 0xc
inc ebx
mov dword [ebp - 0x2c8], ebx
cmp ebx, 4
jl 0x40fda0
mov eax, dword [ebp - 0x2b0]
cmp byte [eax], 0
je 0x40ff80
lea esi, [edi + 0x19c]
push esi
push 0x490d18
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40ff80
mov dword [esi], 0xf
mov eax, dword [ebp - 0x2b4]
cmp byte [eax], 0
je 0x40ffaa
lea esi, [edi + 0x1a0]
push esi
push 0x490d18
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40ffaa
mov dword [esi], 0x16
cmp dword [ebp - 0x2bc], 0
je 0x40ffb9
cmp dword [ebp + 0x14], 0
je 0x410028
mov ebx, dword [ebp - 0x288]
push 0xfffffffffffffff0
push ebx
call dword [ebp - 0x2cc]
push 0
push 0
push 0xf2
push ebx
mov dword [edi + 0x34], eax
call dword [ebp - 0x290]
push ebx
mov dword [edi + 0x38], eax
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
push ebx
mov dword [edi + 0x2c], eax
call dword [ebp - 0x2a0]
mov dword [edi + 0x14], eax
lea esi, [edi + 0x54]
lea eax, [edi + 0x44]
mov dword [edi + 0x3c], 0
xorps xmm0, xmm0
push eax
movups xmmword [eax], xmm0
push ebx
movups xmmword [esi], xmm0
call dword [ebp - 0x2d4]
push esi
push ebx
call dword [ebp - 0x2c4]
push 2
push esi
push dword [edi + 0x14]
push 0
call dword [ebp - 0x2c0]
jmp 0x41002e
mov ebx, dword [ebp - 0x288]
push dword [ebp - 0x28c]
mov eax, dword [ebp - 0x234]
push 0x29a
push 0xc
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x230]
push ebx
mov dword [edi + 0x24], eax
call dword [ebp - 0x290]
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x410067
push eax
call fcn.00468056
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046300c
mov esp, ebp
pop ebp
ret