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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f0
mov eax, dword [0x478bf4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x48c5d4]
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 0x40bfcd
mov dword [ebp - 0x250], 0
mov ecx, 0x4607dc
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], 0x4607dc
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 0x40bbb3
test eax, eax
jne 0x40bbb3
push 0xf86
push str.D:MyProjectsProPilotLibLibMain.c
push fcn.0043be56
push eax
push edx
lea eax, [ebp - 0x250]
push eax
call fcn.0040b6e0
mov eax, dword [ebp - 0x250]
add esp, 0x18
mov dword [ebp - 0x28c], eax
jmp 0x40bd16
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
push 0
push edi
lea esi, [eax + 1]
call fcn.00411cf0
push esi
call fcn.0043d27d
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, 0x45531c
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], 0x455320
je 0x40bcfe
mov esi, dword [ebp - 0x2bc]
test esi, esi
je 0x40bcfe
cmp byte [esi], 0
je 0x40bcfe
push 0x3b
push esi
call fcn.0044437d
add esp, 8
test eax, eax
je 0x40bc53
nop
mov cl, byte [eax]
test cl, cl
je 0x40bc53
cmp cl, 0x3b
jne 0x40bc4e
mov byte [eax], 0x20
add eax, 1
jne 0x40bc40
cmp byte [esi], 0x7c
mov ebx, dword [ebp - 0x250]
je 0x40bc71
cmp byte [ebx], 0x7c
jne 0x40bc71
push 0x7c
push ebx
call fcn.00444854
add esp, 8
lea ebx, [eax + 1]
push 0x3b
push ebx
call fcn.0044437d
add esp, 8
mov byte [ebx], 0
test eax, eax
mov ecx, esi
mov edx, 0x4607dc
cmovne edx, eax
mov dword [ebp - 0x28c], edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40bc94
sub ecx, esi
mov esi, edx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x40bca2
sub esi, edx
sub esi, dword [ebp - 0x250]
add esi, ecx
add esi, ebx
lea eax, [esi + 1]
push eax
call fcn.0043d27d
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 0x455324
push esi
push ebx
call fcn.0040a750
push dword [ebp - 0x250]
call fcn.0043d262
add esp, 0x20
mov dword [ebp - 0x250], ebx
jmp 0x40bd0a
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.0044437d
mov esi, eax
add esp, 8
test esi, esi
je 0x40be33
mov edi, 0x4607dc
mov byte [esi], 0
inc esi
cmp ebx, 0xf
ja case.default.0x40bd3f
jmp dword [ebx*4 + 0x40d150]
mov dword [ebp - 0x2d8], esi
jmp 0x40be0d
mov dword [ebp - 0x290], esi
mov dword [ebp - 0x2c0], esi
jmp 0x40be0d
mov dword [ebp - 0x2cc], 1
mov dword [ebp - 0x2b0], esi
jmp 0x40be0d
mov dword [ebp - 0x2b4], esi
jmp 0x40be0d
mov dword [ebp - 0x29c], esi
jmp 0x40be0d
mov dword [ebp - 0x294], esi
jmp 0x40be0d
mov dword [ebp - 0x298], esi
jmp 0x40be0d
test edi, edi
je 0x40bda6
cmp byte [edi], 0
jne 0x40be0d
mov edi, esi
jmp 0x40be0d
mov dword [ebp - 0x2b8], esi
jmp 0x40be0d
mov dword [ebp - 0x2a0], esi
jmp 0x40be0d
mov dword [ebp - 0x2c4], esi
jmp 0x40be0d
mov dword [ebp - 0x2d0], esi
jmp 0x40be0d
mov dword [ebp + ebx*4 - 0x320], esi
jmp 0x40be0d
mov eax, dword [0x48c5c0]
test eax, eax
je 0x40bde4
mov ecx, dword [eax + 0x190]
jmp 0x40bdea
mov ecx, dword [0x48c5c4]
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.0041cfe0
add esp, 0x24
push 0x3b
push esi
inc ebx
call fcn.0044437d
mov esi, eax
add esp, 8
test esi, esi
jne 0x40bd32
mov dword [ebp - 0x2c8], edi
mov edi, dword [ebp - 0x2a4]
test ebx, ebx
jne 0x40be6c
cmp byte [edi + 0x6c], 0
lea edx, [edi + 0x6c]
je 0x40be6c
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 0x40be46
push ebx
push 0x29a
push 0xc
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40d124
mov ebx, dword [ebp - 0x2d8]
xor edx, edx
mov al, byte [edx + ebx]
test al, al
je 0x40be87
mov byte [edi + edx + 0x64], al
inc edx
cmp edx, 8
jl 0x40be74
jmp 0x40be9f
mov eax, 8
lea ecx, [edx + 0x64]
sub eax, edx
add ecx, edi
push eax
push 0x30
push ecx
call fcn.00439330
add esp, 0xc
cmp dword [ebp - 0x2cc], 0
mov eax, dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x2cc], eax
jne 0x40bfe0
cmp dword [ebp - 0x2bc], 0
je 0x40beca
cmp dword [ebp + 0x14], 0
je 0x40bfe0
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.00444575
add esp, 8
test eax, eax
jne 0x40bf15
mov eax, esi
and al, 0xf
cmp al, 1
jbe 0x40bfe0
test esi, 0x1000
jne 0x40bfe0
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 0x40bf9a
push 2
push 0x460860
push esi
call fcn.0043d288
add esp, 0xc
test eax, eax
jne 0x40bf8e
lea eax, [edi + 0x30]
push eax
lea eax, [esi + 2]
push 0x460864
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40bf9a
push esi
call fcn.0043e103
add esp, 4
mov dword [edi + 0x30], eax
cmp byte [ebx], 0
jne 0x40bfa8
cmp dword [ebp - 0x2bc], 0
je 0x40bfba
push dword [ebp - 0x28c]
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x40bfcd
push eax
call fcn.0043d262
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004379e8
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x28c]
movsd xmm0, qword [0x455560]
movsd qword [ebp - 0x2dc], xmm0
cmp byte [esi], 0
je 0x40c47e
mov ebx, dword [ebp - 0x298]
cmp byte [ebx], 0
jne 0x40c47e
mov ebx, dword [ebp - 0x29c]
cmp byte [ebx], 0
jne 0x40c47e
cmp dword [0x48c624], 0
jne 0x40c47e
cmp dword [edi + 0x20], 0x48
jl 0x40c47e
push 0x455350
push esi
call fcn.00444575
add esp, 8
test eax, eax
jne 0x40c085
mov ecx, dword [0x48c5d4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c077
mov esi, 0x455360
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 0x40c1c8
push str.Save
push esi
call fcn.00444575
add esp, 8
test eax, eax
jne 0x40c0db
mov ecx, dword [0x48c5d4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c0cd
mov dword [ebp - 0x298], str.savebmp
mov esi, 0x45537c
mov dword [ebp - 0x29c], esi
mov esi, 0x455360
mov dword [ebp - 0x294], esi
mov esi, dword [ebp - 0x28c]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x2ac], edx
jmp 0x40c1c8
push str.Undo
push esi
call fcn.00444575
add esp, 8
test eax, eax
jne 0x40c109
mov ecx, dword [0x48c5d4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c0cd
mov dword [ebp - 0x298], str.undobmp
jmp 0x40c0b1
push str.Cancel
push esi
call fcn.00444575
add esp, 8
test eax, eax
jne 0x40c157
mov ecx, dword [0x48c5d4]
mov eax, dword [ecx + 4]
test eax, 0x400
jne 0x40c0cd
mov edx, dword [ecx + 0x14]
mov esi, 0x45537c
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 0x40c1c8
push str.Exit
push esi
call fcn.00444575
add esp, 8
test eax, eax
jne 0x40c22b
mov edx, dword [0x48c5d4]
mov eax, dword [edx + 4]
test eax, 0x400
jne 0x40c1bf
mov ecx, dword [0x48c620]
test ecx, ecx
je 0x40c199
mov dword [ebp - 0x298], str.exitbmp
cmp ecx, 0x100
jl 0x40c1a3
mov dword [ebp - 0x298], str.exitbmp16
mov esi, 0x45537c
mov dword [ebp - 0x29c], esi
mov esi, 0x455360
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], 0x455368
mov ecx, 0x455364
mov dword [ebp - 0x290], ecx
cmp eax, 0x900000
jne 0x40c22b
push 0x4553a8
push esi
push 0x4553a8
lea eax, [ebp - 0x22c]
push 0x12c
push eax
call fcn.004084f0
add esp, 0x14
push eax
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, 0x455368
mov dword [ebp - 0x2a0], ecx
mov ecx, 0x455364
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x2b0]
cmp byte [eax], 0
je 0x40c245
mov eax, dword [ebp - 0x2b4]
cmp byte [eax], 0
jne 0x40c47e
push 0x455350
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c469
push str.Start
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c469
push str.Cancel
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c453
push str.Exit
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c453
push str.Close
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c453
push str.Delete
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c453
push str.Remove
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c453
push str.Stop
push esi
call fcn.00444575
add esp, 8
test eax, eax
je 0x40c453
cmp dword [0x48c624], 0
je 0x40c333
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.004084f0
add esp, 0x14
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], eax
jmp 0x40c47e
cmp dword [ebp - 0x2bc], 0
je 0x40c346
cmp dword [ebp + 0x14], 0
je 0x40c47e
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 [0x455528]
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.004084f0
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.004084f0
add esp, 0x28
mov dword [ebp - 0x2b4], eax
jmp 0x40c47e
mov dword [ebp - 0x2b0], str.202080
mov dword [ebp - 0x2b4], str.2020ff
jmp 0x40c47e
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 0x40c4c2
push 2
push 0x460860
push ebx
call fcn.0043d288
add esp, 0xc
test eax, eax
jne 0x40c4b6
lea eax, [edi + 0x30]
push eax
lea eax, [ebx + 2]
push 0x460864
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40c4c2
push ebx
call fcn.0043e103
add esp, 4
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x40c4e7
push dword [ebp - 0x28c]
push 0x29a
push 0xc
push dword [ebp - 0x288]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40bfba
cmp dword [0x48c624], 0
mov ebx, dword [ebp - 0x28c]
je 0x40c503
cmp byte [ebx], 0
je 0x40c503
or eax, 0x82040
mov dword [edi + 0x30], eax
push 0x26
push ebx
call fcn.0044437d
add esp, 8
test eax, eax
je 0x40c519
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 0x40c543
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 0x40c536
mov ecx, dword [ebp - 0x2b8]
cmp byte [ecx], 0
je 0x40c568
mov eax, dword [ebp - 0x298]
cmp byte [eax], 0
je 0x40c568
push ecx
call fcn.0043e103
add esp, 4
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x2a0]
cmp byte [eax], 0
je 0x40c57f
push eax
call fcn.0043e103
add esp, 4
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x2c4]
cmp byte [eax], 0
je 0x40c596
push eax
call fcn.0043e103
add esp, 4
mov dword [edi + 0x1c], eax
push 0x63
push dword [ebp - 0x2c8]
lea ebx, [edi + 0x134]
push ebx
call fcn.00444a08
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 0x40c80c
test eax, eax
je 0x40c608
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
push eax
call esi
push dword [edi + 0x1b8]
call esi
mov eax, dword [0x48c5d4]
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 [0x48c5d4]
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 0x40c835
test eax, eax
je 0x40c835
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 0x40c85f
cmp byte [edx], al
je 0x40c8c1
mov ecx, dword [edi + 0x198]
test ecx, ecx
je 0x40c882
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 0x40c88a
cmp byte [edx], al
je 0x40c8c1
cmp dword [edi + 0x1ac], 0
lea esi, [edi + 0x1ac]
je 0x40c8bb
mov ebx, 3
nop
mov eax, dword [esi]
test eax, eax
je 0x40c8b3
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esi], 0
add esi, 4
sub ebx, 1
jne 0x40c8a0
mov esi, dword [ebp - 0x294]
test dword [edi + 0x30], 0x40000
je 0x40c941
mov eax, dword [0x48c5d4]
test eax, eax
je 0x40c922
mov ecx, dword [eax + 4]
test ecx, 0x40000000
je 0x40c922
mov edx, dword [eax + 0x1f0c]
test edx, edx
je 0x40c8f5
mov dword [0x48c5d8], edx
mov ecx, dword [eax + 4]
test ecx, 0x40000000
je 0x40c922
mov eax, dword [eax + 0x1f28]
test eax, eax
je 0x40c922
push 0x10a3
push str.D:MyProjectsProPilotLibLibMain.c
push 1
push str.NF_
push dword [ebp - 0x288]
call eax
jmp 0x40c93e
push 0x10a3
push str.D:MyProjectsProPilotLibLibMain.c
push 1
push str.NF_
push dword [ebp - 0x288]
call fcn.00419510
add esp, 0x14
test dword [edi + 0x30], 0x800
mov ecx, dword [sym.imp.USER32.dll_LoadImageA]
mov dword [ebp - 0x2b8], ecx
je 0x40c9f9
cmp byte [esi], 0
je 0x40c975
mov eax, dword [0x48c5d4]
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 0x40c9f9
push 0x104
lea eax, [ebp - 0x218]
xor ebx, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x40c9f6
lea ecx, [ebp - 0x218]
dec ecx
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x40c9a0
mov eax, dword [str.winhlp32.exe]
mov dword [ecx], eax
mov eax, dword [0x455310]
mov dword [ecx + 4], eax
mov eax, dword [0x455314]
mov dword [ecx + 8], eax
mov ax, word [0x455318]
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 0x40c9f0
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 0x40ce09
mov eax, 0x7830
cmp word [ebx], ax
jne 0x40caca
lea esi, [ebx + 2]
push 0xffffffffffffffff
push esi
call fcn.0041a2a0
add esp, 8
test eax, eax
je 0x40caca
push 0xffffffffffffffff
push esi
call fcn.0041a310
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 [0x48c5d4]
cmp dword [eax + 0xdd0], 0
je 0x40ce5f
push 0xffffffffffffffff
push dword [edi + 0x198]
call fcn.0040dc30
mov eax, dword [0x48c5d4]
add esp, 8
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x40caad
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call ebx
mov eax, dword [0x48c5d4]
mov dword [eax + 0xdcc], 0
push dword [0x48c618]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x48c5d4]
mov dword [ecx + 0xdcc], eax
jmp 0x40ce5f
mov esi, dword [ebp - 0x29c]
cmp byte [esi], 0
je 0x40ce5f
mov ecx, ebx
nop dword [eax + eax]
mov al, byte [ecx]
test al, al
je 0x40caff
cmp al, 0x30
jl 0x40caee
cmp al, 0x39
jle 0x40cafa
cmp al, 0x2e
je 0x40cafa
cmp al, 0x2c
jne 0x40cbfe
add ecx, 1
jne 0x40cae0
push ebx
call fcn.0043e103
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 0x40cb77
mov ecx, ebx
nop
mov al, byte [ecx]
test al, al
je 0x40cb4b
cmp al, 0x30
jl 0x40cb3e
cmp al, 0x39
jle 0x40cb46
cmp al, 0x2e
je 0x40cb46
cmp al, 0x2c
jne 0x40cb57
add ecx, 1
jne 0x40cb30
push ebx
call fcn.0043e103
add esp, 4
movzx ebx, ax
mov eax, dword [0x48c5d4]
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 [0x48c5d4]
cmp dword [eax + 0xdd0], 0
je 0x40cc05
push 8
push 0x10
push dword [ebp - 0x254]
push 0
push 0
call fcn.0040da20
mov eax, dword [0x48c5d4]
add esp, 0x14
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [eax + 0xdcc]
test eax, eax
je 0x40cbe4
push eax
call ebx
mov eax, dword [0x48c5d4]
mov dword [eax + 0xdcc], 0
push dword [0x48c618]
call dword [sym.imp.GDI32.dll_CreatePalette]
mov ecx, dword [0x48c5d4]
mov dword [ecx + 0xdcc], eax
jmp 0x40cc0b
mov eax, ebx
jmp 0x40cb0b
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
push 0
push 0
push 0
push 0
push esi
call fcn.0043e103
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004149b0
add esp, 0x18
mov dword [edi + 0x1ac], eax
push 0
push 0
push 0
push 0
push dword [ebp - 0x294]
call fcn.0043e103
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004149b0
mov ecx, dword [ebp - 0x2d0]
add esp, 0x18
mov dword [edi + 0x1b0], eax
mov eax, dword [0x48c5d4]
cmp byte [ecx], 0
je 0x40ccd0
cmp dword [eax + 0xdd0], 0
jne 0x40cc92
test dword [edi + 0x30], 0x200000
jne 0x40cc87
test dword [eax + 4], 0x10000
je 0x40cc92
push 0
push 0
push 0
push 0
push ecx
jmp 0x40ccfc
push 0
push 0
push 0
push 0
push ecx
call fcn.0043e103
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004149b0
mov esi, eax
push esi
call fcn.00411110
add esp, 0x1c
mov dword [edi + 0x1b4], eax
test esi, esi
je 0x40cd81
push esi
call ebx
jmp 0x40cd81
cmp dword [eax + 0xdd0], 0
jne 0x40cd6d
test dword [edi + 0x30], 0x200000
jne 0x40ccf3
test dword [eax + 4], 0x10000
je 0x40cd6d
push 0
push 0
push 0
push 0
push esi
call fcn.0043e103
add esp, 4
push eax
push dword [ebp - 0x254]
call fcn.004149b0
movsd xmm0, qword [ebp - 0x2a8]
add esp, 0x10
mov dword [edi + 0x1b4], eax
movsd qword [esp], xmm0
push 3
push eax
call fcn.004152f0
movsd xmm0, qword [ebp - 0x2a8]
add esp, 8
movsd qword [esp], xmm0
push 2
push dword [edi + 0x1b4]
call fcn.004152f0
movsd xmm0, qword [ebp - 0x2dc]
add esp, 8
movsd qword [esp], xmm0
push 0
push dword [edi + 0x1b4]
call fcn.004152f0
add esp, 0x10
jmp 0x40cd81
push dword [edi + 0x1ac]
call fcn.00411110
add esp, 4
mov dword [edi + 0x1b4], eax
mov eax, dword [0x48c5d4]
cmp dword [eax + 0xdd0], 0
jne 0x40cdf0
test dword [edi + 0x30], 0x4000
jne 0x40cdf0
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
movsd qword [esp], xmm0
push 0
push dword [edi + 0x1ac]
call fcn.004152f0
mov ecx, dword [edi + 0x30]
add esp, 0x10
test ecx, 0x400000
jne 0x40cdf0
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
mov eax, dword [edi + 0x1b0]
movsd qword [esp], xmm0
test ecx, 0x200
je 0x40cde5
push 6
jmp 0x40cde7
push 1
push eax
call fcn.004152f0
add esp, 0x10
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x40ce5f
push eax
call ebx
mov dword [ebp - 0x254], 0
jmp 0x40ce5f
mov eax, dword [ebp - 0x29c]
cmp byte [eax], 0
je 0x40ce5f
push eax
call fcn.0043e103
push esi
mov dword [edi + 0x1f0], eax
call fcn.0043e103
push dword [ebp - 0x2d0]
mov dword [edi + 0x1f4], eax
call fcn.0043e103
add esp, 0xc
mov dword [edi + 0x1f8], eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x234]
push eax
mov eax, dword [0x48c5d4]
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 0x40d00d
push 0x45537c
push ebx
call fcn.00444479
add esp, 8
test eax, eax
je 0x40d00d
lea eax, [ebp - 0x254]
push eax
push 0x460864
push ebx
call fcn.00401070
add esp, 0xc
test eax, eax
je 0x40cec6
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x40cec6
push eax
push 0
call fcn.00410fd0
add esp, 8
jmp 0x40cf0f
mov ecx, ebx
test ecx, ecx
je 0x40ceeb
nop dword [eax]
mov al, byte [ecx]
test al, al
je 0x40ceeb
cmp al, 0x30
jl 0x40cede
cmp al, 0x39
jle 0x40cee6
cmp al, 0x2e
je 0x40cee6
cmp al, 0x2c
jne 0x40cef7
add ecx, 1
jne 0x40ced0
push ebx
call fcn.0043e103
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 0x40d00d
push eax
push 0
call fcn.00410fd0
mov dword [esi - 4], eax
add esp, 8
mov eax, dword [0x48c5d4]
cmp dword [eax + 0xdd0], 0
jne 0x40cfa0
test dword [edi + 0x30], 0x200000
jne 0x40cf48
test dword [eax + 4], 0x10000
je 0x40cfa0
push dword [esi - 8]
push 0
call fcn.00410fd0
movsd xmm0, qword [ebp - 0x2a8]
movsd qword [esp], xmm0
push 3
push eax
mov dword [esi], eax
call fcn.004152f0
movsd xmm0, qword [ebp - 0x2a8]
add esp, 8
movsd qword [esp], xmm0
push 2
push dword [esi]
call fcn.004152f0
movsd xmm0, qword [ebp - 0x2dc]
add esp, 8
movsd qword [esp], xmm0
push 0
push dword [esi]
call fcn.004152f0
add esp, 0x10
jmp 0x40cfad
push dword [esi - 8]
call fcn.00411110
add esp, 4
mov dword [esi], eax
mov eax, dword [0x48c5d4]
cmp dword [eax + 0xdd0], 0
jne 0x40d00d
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
movsd qword [esp], xmm0
push 0
push dword [esi - 8]
call fcn.004152f0
mov ecx, dword [edi + 0x30]
add esp, 0x10
test ecx, 0x400000
jne 0x40d00d
movsd xmm0, qword [ebp - 0x2a8]
sub esp, 8
mov eax, dword [esi - 4]
movsd qword [esp], xmm0
test ecx, 0x200
je 0x40d002
push 6
jmp 0x40d004
push 1
push eax
call fcn.004152f0
add esp, 0x10
mov ebx, dword [ebp - 0x2c8]
add esi, 0xc
inc ebx
mov dword [ebp - 0x2c8], ebx
cmp ebx, 4
jl 0x40ce70
mov eax, dword [ebp - 0x2b0]
cmp byte [eax], 0
je 0x40d050
lea esi, [edi + 0x19c]
push esi
push 0x460864
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40d050
mov dword [esi], 0xf
mov eax, dword [ebp - 0x2b4]
cmp byte [eax], 0
je 0x40d07a
lea esi, [edi + 0x1a0]
push esi
push 0x460864
push eax
call fcn.00401070
add esp, 0xc
test eax, eax
jne 0x40d07a
mov dword [esi], 0x16
cmp dword [ebp - 0x2bc], 0
je 0x40d089
cmp dword [ebp + 0x14], 0
je 0x40d0f8
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 0x40d0fe
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 0x40d137
push eax
call fcn.0043d262
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004379e8
mov esp, ebp
pop ebp
ret