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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f0
mov eax, dword [0x479bf0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x48d5f4]
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 0x40c6ed
mov dword [ebp - 0x250], 0
mov ecx, 0x46183c
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], 0x46183c
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 0x40c2d3
test eax, eax
jne 0x40c2d3
push 0xf86
push str.D:MyProjectsProPilotLibLibMain.c
push fcn.0043bbd4
push eax
push edx
lea eax, [ebp - 0x250]
push eax
call fcn.0040be00
mov eax, dword [ebp - 0x250]
add esp, 0x18
mov dword [ebp - 0x28c], eax
jmp 0x40c436
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
push 0
push edi
lea esi, [eax + 1]
call fcn.00412410
push esi
call fcn.00442d35
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, 0x456368
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], 0x45636c
je 0x40c41e
mov esi, dword [ebp - 0x2bc]
test esi, esi
je 0x40c41e
cmp byte [esi], 0
je 0x40c41e
push 0x3b
push esi
call fcn.0044417b
add esp, 8
test eax, eax
je 0x40c373
nop
mov cl, byte [eax]
test cl, cl
je 0x40c373
cmp cl, 0x3b
jne 0x40c36e
mov byte [eax], 0x20
add eax, 1
jne 0x40c360
cmp byte [esi], 0x7c
mov ebx, dword [ebp - 0x250]
je 0x40c391
cmp byte [ebx], 0x7c
jne 0x40c391
push 0x7c
push ebx
call fcn.00444792
add esp, 8
lea ebx, [eax + 1]
push 0x3b
push ebx
call fcn.0044417b
add esp, 8
mov byte [ebx], 0
test eax, eax
mov ecx, esi
mov edx, 0x46183c
cmovne edx, eax
mov dword [ebp - 0x28c], edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c3b4
sub ecx, esi
mov esi, edx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x40c3c2
sub esi, edx
sub esi, dword [ebp - 0x250]
add esi, ecx
add esi, ebx
lea eax, [esi + 1]
push eax
call fcn.00442d35
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 0x456370
push esi
push ebx
call fcn.0040ae70
push dword [ebp - 0x250]
call fcn.0043d146
add esp, 0x20
mov dword [ebp - 0x250], ebx
jmp 0x40c42a
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.0044417b
mov esi, eax
add esp, 8
test esi, esi
je 0x40c553
mov edi, 0x46183c
mov byte [esi], 0
inc esi
cmp ebx, 0xf
ja case.default.0x40c45f
jmp dword [ebx*4 + 0x40d870]
mov dword [ebp - 0x2d8], esi
jmp 0x40c52d
mov dword [ebp - 0x290], esi
mov dword [ebp - 0x2c0], esi
jmp 0x40c52d
mov dword [ebp - 0x2cc], 1
mov dword [ebp - 0x2b0], esi
jmp 0x40c52d
mov dword [ebp - 0x2b4], esi
jmp 0x40c52d
mov dword [ebp - 0x29c], esi
jmp 0x40c52d
mov dword [ebp - 0x294], esi
jmp 0x40c52d
mov dword [ebp - 0x298], esi
jmp 0x40c52d
test edi, edi
je 0x40c4c6
cmp byte [edi], 0
jne 0x40c52d
mov edi, esi
jmp 0x40c52d
mov dword [ebp - 0x2b8], esi
jmp 0x40c52d
mov dword [ebp - 0x2a0], esi
jmp 0x40c52d
mov dword [ebp - 0x2c4], esi
jmp 0x40c52d
mov dword [ebp - 0x2d0], esi
jmp 0x40c52d
mov dword [ebp + ebx*4 - 0x320], esi
jmp 0x40c52d
mov eax, dword [0x48d5e0]
test eax, eax
je 0x40c504
mov ecx, dword [eax + 0x190]
jmp 0x40c50a
mov ecx, dword [0x48d5e4]
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.0041d6f0
add esp, 0x24
push 0x3b
push esi
inc ebx
call fcn.0044417b
mov esi, eax
add esp, 8
test esi, esi
jne 0x40c452
mov dword [ebp - 0x2c8], edi
mov edi, dword [ebp - 0x2a4]
test ebx, ebx
jne 0x40c58c
cmp byte [edi + 0x6c], 0
lea edx, [edi + 0x6c]
je 0x40c58c
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 0x40c566
push ebx
push 0x29a
push 0xc
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40d844
mov ebx, dword [ebp - 0x2d8]
xor edx, edx
mov al, byte [edx + ebx]
test al, al
je 0x40c5a7
mov byte [edi + edx + 0x64], al
inc edx
cmp edx, 8
jl 0x40c594
jmp 0x40c5bf
mov eax, 8
lea ecx, [edx + 0x64]
sub eax, edx
add ecx, edi
push eax
push 0x30
push ecx
call fcn.00439a50
add esp, 0xc
cmp dword [ebp - 0x2cc], 0
mov eax, dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x2cc], eax
jne 0x40c700
cmp dword [ebp - 0x2bc], 0
je 0x40c5ea
cmp dword [ebp + 0x14], 0
je 0x40c700
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.004444b3
add esp, 8
test eax, eax
jne 0x40c635
mov eax, esi
and al, 0xf
cmp al, 1
jbe 0x40c700
test esi, 0x1000
jne 0x40c700
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 0x40c6ba
push 2
push 0x46187c
push esi
call fcn.0043bc62
add esp, 0xc
test eax, eax
jne 0x40c6ae
lea eax, [edi + 0x30]
push eax
lea eax, [esi + 2]
push 0x461880
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40c6ba
push esi
call fcn.0043dd72
add esp, 4
mov dword [edi + 0x30], eax
cmp byte [ebx], 0
jne 0x40c6c8
cmp dword [ebp - 0x2bc], 0
je 0x40c6da
push dword [ebp - 0x28c]
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x40c6ed
push eax
call fcn.0043d146
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004380f8
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x28c]
movsd xmm0, qword [0x4565b0]
movsd qword [ebp - 0x2dc], xmm0
cmp byte [esi], 0
je 0x40cb9e
mov ebx, dword [ebp - 0x298]
cmp byte [ebx], 0
jne 0x40cb9e
mov ebx, dword [ebp - 0x29c]
cmp byte [ebx], 0
jne 0x40cb9e
cmp dword [0x48d644], 0
jne 0x40cb9e
cmp dword [edi + 0x20], 0x48
jl 0x40cb9e
push 0x45639c
push esi
call fcn.004444b3
add esp, 8
test eax, eax
jne 0x40c7a5
mov ecx, dword [0x48d5f4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c797
mov esi, 0x4563ac
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 0x40c8e8
push str.Save
push esi
call fcn.004444b3
add esp, 8
test eax, eax
jne 0x40c7fb
mov ecx, dword [0x48d5f4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c7ed
mov dword [ebp - 0x298], str.savebmp
mov esi, 0x4563c8
mov dword [ebp - 0x29c], esi
mov esi, 0x4563ac
mov dword [ebp - 0x294], esi
mov esi, dword [ebp - 0x28c]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x2ac], edx
jmp 0x40c8e8
push str.Undo
push esi
call fcn.004444b3
add esp, 8
test eax, eax
jne 0x40c829
mov ecx, dword [0x48d5f4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c7ed
mov dword [ebp - 0x298], str.undobmp
jmp 0x40c7d1
push str.Cancel
push esi
call fcn.004444b3
add esp, 8
test eax, eax
jne 0x40c877
mov ecx, dword [0x48d5f4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c7ed
mov edx, dword [ecx + 0x14]
mov esi, 0x4563c8
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 0x40c8e8
push str.Exit
push esi
call fcn.004444b3
add esp, 8
test eax, eax
jne 0x40c94b
mov edx, dword [0x48d5f4]
mov eax, dword [edx + 4]
test eax, 0x400
jne 0x40c8df
mov ecx, dword [0x48d640]
test ecx, ecx
je 0x40c8b9
mov dword [ebp - 0x298], str.exitbmp
cmp ecx, 0x100
jl 0x40c8c3
mov dword [ebp - 0x298], str.exitbmp16
mov esi, 0x4563c8
mov dword [ebp - 0x29c], esi
mov esi, 0x4563ac
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], 0x4563b4
mov ecx, 0x4563b0
mov dword [ebp - 0x290], ecx
cmp eax, 0x900000
jne 0x40c94b
push 0x4563f4
push esi
push 0x4563f4
lea eax, [ebp - 0x22c]
push 0x12c
push eax
call fcn.00408810
add esp, 0x14
push eax
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, 0x4563b4
mov dword [ebp - 0x2a0], ecx
mov ecx, 0x4563b0
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x2b0]
cmp byte [eax], 0
je 0x40c965
mov eax, dword [ebp - 0x2b4]
cmp byte [eax], 0
jne 0x40cb9e
push 0x45639c
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb89
push str.Start
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb89
push str.Cancel
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb73
push str.Exit
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb73
push str.Close
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb73
push str.Delete
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb73
push str.Remove
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb73
push str.Stop
push esi
call fcn.004444b3
add esp, 8
test eax, eax
je 0x40cb73
cmp dword [0x48d644], 0
je 0x40ca53
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.00408810
add esp, 0x14
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], eax
jmp 0x40cb9e
cmp dword [ebp - 0x2bc], 0
je 0x40ca66
cmp dword [ebp + 0x14], 0
je 0x40cb9e
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 [0x456578]
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.00408810
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.00408810
add esp, 0x28
mov dword [ebp - 0x2b4], eax
jmp 0x40cb9e
mov dword [ebp - 0x2b0], str.202080
mov dword [ebp - 0x2b4], str.2020ff
jmp 0x40cb9e
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 0x40cbe2
push 2
push 0x46187c
push ebx
call fcn.0043bc62
add esp, 0xc
test eax, eax
jne 0x40cbd6
lea eax, [edi + 0x30]
push eax
lea eax, [ebx + 2]
push 0x461880
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40cbe2
push ebx
call fcn.0043dd72
add esp, 4
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x40cc07
push dword [ebp - 0x28c]
push 0x29a
push 0xc
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40c6da
cmp dword [0x48d644], 0
mov ebx, dword [ebp - 0x28c]
je 0x40cc23
cmp byte [ebx], 0
je 0x40cc23
or eax, 0x82040
mov dword [edi + 0x30], eax
push 0x26
push ebx
call fcn.0044417b
add esp, 8
test eax, eax
je 0x40cc39
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 0x40cc63
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 0x40cc56
mov ecx, dword [ebp - 0x2b8]
cmp byte [ecx], 0
je 0x40cc88
mov eax, dword [ebp - 0x298]
cmp byte [eax], 0
je 0x40cc88
push ecx
call fcn.0043dd72
add esp, 4
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x2a0]
cmp byte [eax], 0
je 0x40cc9f
push eax
call fcn.0043dd72
add esp, 4
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x2c4]
cmp byte [eax], 0
je 0x40ccb6
push eax
call fcn.0043dd72
add esp, 4
mov dword [edi + 0x1c], eax
push 0x63
push dword [ebp - 0x2c8]
lea ebx, [edi + 0x134]
push ebx
call fcn.00444946
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 0x40cf2c
test eax, eax
je 0x40cd28
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
push eax
call esi
push dword [edi + 0x1b8]
call esi
mov eax, dword [0x48d5f4]
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 [0x48d5f4]
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 0x40cf55
test eax, eax
je 0x40cf55
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 0x40cf7f
cmp byte [edx], al
je 0x40cfe1
mov ecx, dword [edi + 0x198]
test ecx, ecx
je 0x40cfa2
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 0x40cfaa
cmp byte [edx], al
je 0x40cfe1
cmp dword [edi + 0x1ac], 0
lea esi, [edi + 0x1ac]
je 0x40cfdb
mov ebx, 3
nop
mov eax, dword [esi]
test eax, eax
je 0x40cfd3
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esi], 0
add esi, 4
sub ebx, 1
jne 0x40cfc0
mov esi, dword [ebp - 0x294]
test dword [edi + 0x30], 0x40000
je 0x40d061
mov eax, dword [0x48d5f4]
test eax, eax
je 0x40d042
mov ecx, dword [eax + 4]
test ecx, 0x40000000
je 0x40d042
mov edx, dword [eax + 0x1f0c]
test edx, edx
je 0x40d015
mov dword [0x48d5f8], edx
mov ecx, dword [eax + 4]
test ecx, 0x40000000
je 0x40d042
mov eax, dword [eax + 0x1f28]
test eax, eax
je 0x40d042
push 0x10a3
push str.D:MyProjectsProPilotLibLibMain.c
push 1
push str.NF_
push dword [ebp - 0x288]
call eax
jmp 0x40d05e
push 0x10a3
push str.D:MyProjectsProPilotLibLibMain.c
push 1
push str.NF_
push dword [ebp - 0x288]
call fcn.00419c30
add esp, 0x14
test dword [edi + 0x30], 0x800
mov ecx, dword [sym.imp.USER32.dll_LoadImageA]
mov dword [ebp - 0x2b8], ecx
je 0x40d119
cmp byte [esi], 0
je 0x40d095
mov eax, dword [0x48d5f4]
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 0x40d119
push 0x104
lea eax, [ebp - 0x218]
xor ebx, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x40d116
lea ecx, [ebp - 0x218]
dec ecx
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x40d0c0
mov eax, dword [str.winhlp32.exe]
mov dword [ecx], eax
mov eax, dword [0x45635c]
mov dword [ecx + 4], eax
mov eax, dword [0x456360]
mov dword [ecx + 8], eax
mov ax, word [0x456364]
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 0x40d110
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 0x40d529
mov eax, 0x7830
cmp word [ebx], ax
jne 0x40d1ea
lea esi, [ebx + 2]
push 0xffffffffffffffff
push esi
call fcn.0041a9c0
add esp, 8
test eax, eax
je 0x40d1ea
push 0xffffffffffffffff
push esi
call fcn.0041aa30
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 [0x48d5f4]
cmp dword [eax + 0xdd0], 0
je 0x40d57f
push 0xffffffffffffffff
push dword [edi + 0x198]
call fcn.0040e350
mov eax, dword [0x48d5f4]
add esp, 8
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x40d1cd
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call ebx
mov eax, dword [0x48d5f4]
mov dword [eax + 0xdcc], 0
push dword [0x48d638]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x48d5f4]
mov dword [ecx + 0xdcc], eax
jmp 0x40d57f
mov esi, dword [ebp - 0x29c]
cmp byte [esi], 0
je 0x40d57f
mov ecx, ebx
nop dword [eax + eax]
mov al, byte [ecx]
test al, al
je 0x40d21f
cmp al, 0x30
jl 0x40d20e
cmp al, 0x39
jle 0x40d21a
cmp al, 0x2e
je 0x40d21a
cmp al, 0x2c
jne 0x40d31e
add ecx, 1
jne 0x40d200
push ebx
call fcn.0043dd72
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 0x40d297
mov ecx, ebx
nop
mov al, byte [ecx]
test al, al
je 0x40d26b
cmp al, 0x30
jl 0x40d25e
cmp al, 0x39
jle 0x40d266
cmp al, 0x2e
je 0x40d266
cmp al, 0x2c
jne 0x40d277
add ecx, 1
jne 0x40d250
push ebx
call fcn.0043dd72
add esp, 4
movzx ebx, ax
mov eax, dword [0x48d5f4]
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 [0x48d5f4]
cmp dword [eax + 0xdd0], 0
je 0x40d325
push 8
push 0x10
push dword [ebp - 0x254]
push 0
push 0
call fcn.0040e140
mov eax, dword [0x48d5f4]
add esp, 0x14
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x40d304
push eax
call ebx
mov eax, dword [0x48d5f4]
mov dword [eax + 0xdcc], 0
push dword [0x48d638]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x48d5f4]
mov dword [ecx + 0xdcc], eax
jmp 0x40d32b
mov eax, ebx
jmp 0x40d22b
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
push 0
push 0
push 0
push 0
push esi
call fcn.0043dd72
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004150d0
add esp, 0x18
mov dword [edi + 0x1ac], eax
push 0
push 0
push 0
push 0
push dword [ebp - 0x294]
call fcn.0043dd72
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004150d0
mov ecx, dword [ebp - 0x2d0]
add esp, 0x18
mov dword [edi + 0x1b0], eax
mov eax, dword [0x48d5f4]
cmp byte [ecx], 0
je 0x40d3f0
cmp dword [eax + 0xdd0], 0
jne 0x40d3b2
test dword [edi + 0x30], 0x200000
jne 0x40d3a7
test dword [eax + 4], 0x10000
je 0x40d3b2
push 0
push 0
push 0
push 0
push ecx
jmp 0x40d41c
push 0
push 0
push 0
push 0
push ecx
call fcn.0043dd72
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004150d0
mov esi, eax
push esi
call fcn.00411830
add esp, 0x1c
mov dword [edi + 0x1b4], eax
test esi, esi
je 0x40d4a1
push esi
call ebx
jmp 0x40d4a1
cmp dword [eax + 0xdd0], 0
jne 0x40d48d
test dword [edi + 0x30], 0x200000
jne 0x40d413
test dword [eax + 4], 0x10000
je 0x40d48d
push 0
push 0
push 0
push 0
push esi
call fcn.0043dd72
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004150d0
movsd xmm0, qword [ebp - 0x2a8]
add esp, 0x10
mov dword [edi + 0x1b4], eax
movsd qword [esp], xmm0
push 3
push eax
call fcn.00415a10
movsd xmm0, qword [ebp - 0x2a8]
add esp, 8
movsd qword [esp], xmm0
push 2
push dword [edi + 0x1b4]
call fcn.00415a10
movsd xmm0, qword [ebp - 0x2dc]
add esp, 8
movsd qword [esp], xmm0
push 0
push dword [edi + 0x1b4]
call fcn.00415a10
add esp, 0x10
jmp 0x40d4a1
push dword [edi + 0x1ac]
call fcn.00411830
add esp, 4
mov dword [edi + 0x1b4], eax
mov eax, dword [0x48d5f4]
cmp dword [eax + 0xdd0], 0
jne 0x40d510
test dword [edi + 0x30], 0x4000
jne 0x40d510
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
movsd qword [esp], xmm0
push 0
push dword [edi + 0x1ac]
call fcn.00415a10
mov ecx, dword [edi + 0x30]
add esp, 0x10
test ecx, 0x400000
jne 0x40d510
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
mov eax, dword [edi + 0x1b0]
movsd qword [esp], xmm0
test ecx, 0x200
je 0x40d505
push 6
jmp 0x40d507
push 1
push eax
call fcn.00415a10
add esp, 0x10
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x40d57f
push eax
call ebx
mov dword [ebp - 0x254], 0
jmp 0x40d57f
mov eax, dword [ebp - 0x29c]
cmp byte [eax], 0
je 0x40d57f
push eax
call fcn.0043dd72
push esi
mov dword [edi + 0x1f0], eax
call fcn.0043dd72
push dword [ebp - 0x2d0]
mov dword [edi + 0x1f4], eax
call fcn.0043dd72
add esp, 0xc
mov dword [edi + 0x1f8], eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x234]
push eax
mov eax, dword [0x48d5f4]
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 0x40d72d
push 0x4563c8
push ebx
call fcn.004443b7
add esp, 8
test eax, eax
je 0x40d72d
lea eax, [ebp - 0x254]
push eax
push 0x461880
push ebx
call fcn.00401070
add esp, 0xc
test eax, eax
je 0x40d5e6
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x40d5e6
push eax
push 0
call fcn.004116f0
add esp, 8
jmp 0x40d62f
mov ecx, ebx
test ecx, ecx
je 0x40d60b
nop dword [eax]
mov al, byte [ecx]
test al, al
je 0x40d60b
cmp al, 0x30
jl 0x40d5fe
cmp al, 0x39
jle 0x40d606
cmp al, 0x2e
je 0x40d606
cmp al, 0x2c
jne 0x40d617
add ecx, 1
jne 0x40d5f0
push ebx
call fcn.0043dd72
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 0x40d72d
push eax
push 0
call fcn.004116f0
mov dword [esi - 4], eax
add esp, 8
mov eax, dword [0x48d5f4]
cmp dword [eax + 0xdd0], 0
jne 0x40d6c0
test dword [edi + 0x30], 0x200000
jne 0x40d668
test dword [eax + 4], 0x10000
je 0x40d6c0
push dword [esi - 8]
push 0
call fcn.004116f0
movsd xmm0, qword [ebp - 0x2a8]
movsd qword [esp], xmm0
push 3
push eax
mov dword [esi], eax
call fcn.00415a10
movsd xmm0, qword [ebp - 0x2a8]
add esp, 8
movsd qword [esp], xmm0
push 2
push dword [esi]
call fcn.00415a10
movsd xmm0, qword [ebp - 0x2dc]
add esp, 8
movsd qword [esp], xmm0
push 0
push dword [esi]
call fcn.00415a10
add esp, 0x10
jmp 0x40d6cd
push dword [esi - 8]
call fcn.00411830
add esp, 4
mov dword [esi], eax
mov eax, dword [0x48d5f4]
cmp dword [eax + 0xdd0], 0
jne 0x40d72d
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
movsd qword [esp], xmm0
push 0
push dword [esi - 8]
call fcn.00415a10
mov ecx, dword [edi + 0x30]
add esp, 0x10
test ecx, 0x400000
jne 0x40d72d
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
mov eax, dword [esi - 4]
movsd qword [esp], xmm0
test ecx, 0x200
je 0x40d722
push 6
jmp 0x40d724
push 1
push eax
call fcn.00415a10
add esp, 0x10
mov ebx, dword [ebp - 0x2c8]
add esi, 0xc
inc ebx
mov dword [ebp - 0x2c8], ebx
cmp ebx, 4
jl 0x40d590
mov eax, dword [ebp - 0x2b0]
cmp byte [eax], 0
je 0x40d770
lea esi, [edi + 0x19c]
push esi
push 0x461880
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40d770
mov dword [esi], 0xf
mov eax, dword [ebp - 0x2b4]
cmp byte [eax], 0
je 0x40d79a
lea esi, [edi + 0x1a0]
push esi
push 0x461880
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40d79a
mov dword [esi], 0x16
cmp dword [ebp - 0x2bc], 0
je 0x40d7a9
cmp dword [ebp + 0x14], 0
je 0x40d818
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 0x40d81e
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 0x40d857
push eax
call fcn.0043d146
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004380f8
mov esp, ebp
pop ebp
ret