Function at 0x42edd0
Capabilities:
Create thread
Read .ini file
Terminate process

Disassembly:
sub esp, 0x1a0
or ecx, 0xffffffff
xor eax, eax
mov byte [0xba0620], 0
push ebx
push ebp
mov ebp, dword [esp + 0x1b4]
push esi
push edi
xor ebx, ebx
mov edi, ebp
xor esi, esi
mov dword [0xa77b58], ebx
mov dword [0xa66ff0], ebx
mov dword [0xa77a70], ebx
mov dword [0xa67548], ebx
mov dword [0xa56e50], ebx
mov dword [0xa66ecc], ebx
mov dword [0xa67424], ebx
mov dword [0xba0622], ebx
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x42fa0e
cmp byte [edx + ebp], 0x2c
jne 0x42ee37
inc esi
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jb 0x42ee30
cmp esi, 6
jne 0x42fa0e
push ebp
call fcn.0042ea60
mov edi, 0xa77920
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x1b4]
mov ecx, 8
mov edi, 0xa77a20
rep stosd dword es:[edi], eax
cmp dword [esp + 0x1b8], ebx
jne 0x42eef6
push str.3dIcon1
push esi
mov dword [esp + 0x38], 0x200b
mov dword [esp + 0x3c], 0x42ff00
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], esi
call dword [sym.imp.USER32.dll_LoadIconA]
push 4
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp + 0x30]
mov dword [esp + 0x50], ebx
push ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], str.3dviewClass
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
je 0x42fa0e
mov dword [0xa77a6c], esi
call fcn.0042fa40
lea edx, [esp + 0x164]
push edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x870e00]
push ebx
mov ecx, eax
push esi
neg ecx
sbb ecx, ecx
push ebx
and ecx, 0xffffffa5
push ebx
add ecx, 0x23a
mov edi, dword [sym.imp.USER32.dll_CreateWindowExA]
neg eax
sbb eax, eax
push ecx
and al, 0x84
add eax, 0x2f2
push eax
push 0x80000000
push 0x80000000
push ebx
push ebx
push str.3dviewClass
push ebx
call edi
push ebx
push esi
push ebx
mov dword [0xa77808], eax
push eax
mov eax, dword [0x870e00]
mov edx, eax
neg edx
sbb edx, edx
and edx, 0xffffffa5
add edx, 0x23a
neg eax
sbb eax, eax
push edx
and al, 0x84
add eax, 0x2f2
push eax
push 0x80000000
push 0x80000000
push 0x80000000
push ebx
push str.3dviewClass
push ebx
call edi
mov ebp, eax
mov eax, dword [0xa66ff4]
push ebp
push 2
push 0x721
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [0xa77808]
push ebx
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0xa77808]
push ebx
push edx
call dword [sym.imp.USER32.dll_ShowOwnedPopups]
push ebp
mov dword [0xa77b48], ebp
call dword [sym.imp.USER32.dll_GetMenu]
push 0x870de8
mov dword [0xa77a40], eax
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
jge 0x42eff0
mov dword [0x870de8], ebx
mov eax, dword [0xa77a40]
push ebx
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.3dview.ini
push 0x100
push 0x870160
push 0x763778
push str.OpenDir
push str.Settings
mov dword [0x86e5cc], eax
call esi
push str.3dview.ini
push 0x100
push 0x86fdcc
push 0x763778
push str.SaveDir
push str.Settings
call esi
push str.3dview.ini
lea ecx, [esp + 0x68]
push 0x100
push ecx
push 0x474170
push str.Wavelet
push str.Settings
call esi
push 3
lea edx, [esp + 0x68]
push 0x474164
push edx
call fcn.0046bda0
add esp, 0xc
test eax, eax
je 0x42f0b8
push 5
lea eax, [esp + 0x68]
push str.LOSSY
push eax
call fcn.0046bda0
add esp, 0xc
test eax, eax
je 0x42f0b8
push 8
lea ecx, [esp + 0x68]
push str.LOSSLESS
push ecx
call fcn.004618c0
add esp, 0xc
neg eax
sbb eax, eax
inc eax
mov dword [0x870df8], eax
jmp 0x42f0c2
mov dword [0x870df8], 2
push str.3dview.ini
lea edx, [esp + 0x68]
push 0x100
push edx
push 0x47414c
push str.CompressionRate
push str.Settings
call esi
push 0x473e24
lea eax, [esp + 0x68]
push 0x46f7c4
push eax
call fcn.00460ce0
mov edi, 1
add esp, 0xc
cmp eax, edi
je 0x42f10c
mov dword [0x473e24], 0x14
push str.3dview.ini
push 0xa
push 0x86ea40
push 0x474164
push str.Warning
push str.Settings
call esi
push str.3dview.ini
lea ecx, [esp + 0x5c]
push 0xa
push ecx
push 0x474130
push str.Processor
push str.Settings
call esi
push str.3dview.ini
lea edx, [esp + 0x68]
push 0xa
push edx
push 0x474120
push str.Time
push str.Settings
call esi
push 3
lea eax, [esp + 0x68]
push 0x474114
push eax
call fcn.0046bda0
add esp, 0xc
lea ecx, [esp + 0x64]
neg eax
sbb eax, eax
push str.3dview.ini
push 0xa
and eax, 0xc
push ecx
push str.DDMMYY
add eax, 0xc
push str.Date
push str.Settings
mov dword [0x473e5c], eax
call esi
push 6
lea edx, [esp + 0x68]
push str.DDMMYY
push edx
call fcn.0046bda0
add esp, 0xc
test eax, eax
jne 0x42f1c3
mov dword [0x473e60], edi
jmp 0x42f1e5
push 6
lea eax, [esp + 0x68]
push str.MMDDYY
push eax
call fcn.0046bda0
add esp, 0xc
neg eax
sbb eax, eax
neg eax
add eax, 2
mov dword [0x473e60], eax
push str.3dview.ini
lea ecx, [esp + 0x68]
push 0xa
push ecx
push 0x4740f8
push str.Light_Koeff
push str.Settings
call esi
push 0xa77ad6
lea edx, [esp + 0x68]
push 0x4740e8
push edx
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
je 0x42f227
mov dword [0xa77ad6], 0x40400000
push str.3dview.ini
lea eax, [esp + 0x68]
push 0xa
push eax
push 0x4740e4
push str.XRay_Koeff
push str.Settings
call esi
push 0xa77ada
lea ecx, [esp + 0x68]
push 0x4740e8
push ecx
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
je 0x42f269
mov dword [0xa77ada], 0x40a00000
push str.3dview.ini
lea edx, [esp + 0x68]
push 0xa
push edx
push 0x4740d4
push str.Transparency
push str.Settings
call esi
lea eax, [esp + 0x10]
lea ecx, [esp + 0x64]
push eax
push 0x4740e8
push ecx
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
je 0x42f2a9
mov dword [esp + 0x10], 0x3f19999a
mov edx, dword [esp + 0x10]
push edx
call fcn.004552f0
add esp, 4
lea eax, [esp + 0x64]
push str.3dview.ini
push 0xa
push eax
push 0x4740c0
push str.RotSliderRange
push str.Settings
call esi
push 0xa77a5c
lea ecx, [esp + 0x68]
push 0x46f7c4
push ecx
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
je 0x42f2f8
mov dword [0xa77a5c], 0x168
push str.3dview.ini
lea edx, [esp + 0x68]
push 0xa
push edx
push 0x470118
push str.VolumeUnits
push str.Settings
call esi
push 0xa66fec
lea eax, [esp + 0x68]
push 0x46f7c4
push eax
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
jne 0x42f33d
mov eax, dword [0xa66fec]
cmp eax, ebx
jl 0x42f33d
cmp eax, edi
jle 0x42f343
mov dword [0xa66fec], edi
push str.3dview.ini
lea ecx, [esp + 0x68]
push 0xa
push ecx
push 0x474164
push str.ShowPID
push str.Settings
call esi
push 3
lea edx, [esp + 0x68]
push 0x474164
push edx
call fcn.0046bda0
add esp, 0xc
test eax, eax
je 0x42f37e
mov dword [0x473e58], ebx
push str.3dview.ini
lea eax, [esp + 0x68]
push 0xa
push eax
push 0x474170
push str.AviReverse
push str.Settings
call esi
push 3
lea ecx, [esp + 0x68]
push 0x474164
push ecx
call fcn.0046bda0
add esp, 0xc
test eax, eax
je 0x42f3b9
mov dword [0x473e2c], ebx
push str.3dview.ini
lea edx, [esp + 0x68]
push 0xa
push edx
push 0x47408c
push str.Grad_Reflection
push str.Settings
call esi
push 0xa67010
lea eax, [esp + 0x68]
push 0x4740e8
push eax
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
je 0x42f3fb
mov dword [0xa67010], 0x3e4ccccd
push str.3dview.ini
lea ecx, [esp + 0x68]
push 0xa
push ecx
push 0x474078
push str.Grad_Depthfact
push str.Settings
call esi
push 0xa66ff8
lea edx, [esp + 0x68]
push 0x4740e8
push edx
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
je 0x42f43d
mov dword [0xa66ff8], 0x3f333333
push str.3dview.ini
lea eax, [esp + 0x68]
push 0xa
push eax
push 0x4740e4
push str.Grad_Exponent
push str.Settings
call esi
push 0xa77a44
lea ecx, [esp + 0x68]
push 0x4740e8
push ecx
call fcn.00460ce0
add esp, 0xc
cmp eax, edi
je 0x42f47f
mov dword [0xa77a44], 0x40a00000
call fcn.004553d0
mov edx, dword [0xa77a8c]
mov eax, dword [0xa77a84]
mov ecx, dword [0xa77a80]
sub edx, eax
push 1
push edx
mov edx, dword [0xa77a88]
sub edx, ecx
push edx
push eax
push ecx
push ebp
call dword [sym.imp.USER32.dll_MoveWindow]
mov eax, dword [esp + 0x1c0]
push eax
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0042fc10
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push 4
mov esi, eax
call fcn.0044b970
mov edi, dword [sym.imp.USER32.dll_InsertMenuA]
add esp, 4
push eax
push 0x9c45
push 0x401
push 0xffffffffffffffff
push esi
call edi
push 6
call fcn.0044b970
mov ecx, dword [0xa77a40]
add esp, 4
push eax
push esi
push 0x410
push 1
push ecx
call edi
mov eax, dword [0x870e30]
mov esi, dword [sym.imp.USER32.dll_DeleteMenu]
cmp eax, ebx
jne 0x42f523
mov edx, dword [0xa77a40]
push 0x400
push 4
push edx
call esi
push ebp
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov al, byte [0xa67600]
test al, al
jne 0x42f542
mov eax, dword [0x86e5cc]
push 0x400
push 6
push eax
call esi
cmp dword [0x473e20], ebx
je 0x42f563
mov ecx, dword [0xa77a40]
push str.Register...
push 0x9c75
push ebx
push 0x9c43
push ecx
call edi
mov al, byte [esp + 0x59]
cmp al, 0x30
je 0x42f58c
cmp al, 0x36
push 8
je 0x42f57f
mov edx, dword [0xa77a40]
push 0x9c4a
push edx
jmp 0x42f59a
mov eax, dword [0xa77a40]
push 0x9c49
push eax
jmp 0x42f59a
mov ecx, dword [0xa77a40]
push 8
push 0x9c48
push ecx
mov esi, dword [sym.imp.USER32.dll_CheckMenuItem]
call esi
mov eax, dword [0xa66fec]
mov dword [0xa77b80], 0xc8
sub eax, ebx
je 0x42f5c8
dec eax
jne 0x42f5d7
mov edx, dword [0xa77a40]
push 8
push 0x9c73
push edx
jmp 0x42f5d5
mov eax, dword [0xa77a40]
push 8
push 0x9c74
push eax
call esi
cmp dword [0x473e58], ebx
jne 0x42f5ee
mov ecx, dword [0xa77a40]
push ebx
push 0x9c51
push ecx
call esi
mov eax, dword [0x473e5c]
push 8
cmp eax, 0xc
jne 0x42f608
mov edx, dword [0xa77a40]
push 0x9c52
push edx
jmp 0x42f613
mov eax, dword [0xa77a40]
push 0x9c53
push eax
call esi
mov eax, dword [0x473e60]
sub eax, 2
je 0x42f640
dec eax
push 8
je 0x42f632
mov ecx, dword [0xa77a40]
push 0x9c54
push ecx
jmp 0x42f64d
mov edx, dword [0xa77a40]
push 0x9c56
push edx
jmp 0x42f64d
mov eax, dword [0xa77a40]
push 8
push 0x9c55
push eax
call esi
mov ecx, dword [0xa77a6c]
mov esi, dword [sym.imp.USER32.dll_LoadAcceleratorsA]
push str.IDR_ACC
push ecx
call esi
mov edx, dword [0xa77a6c]
push str.IDR_ACC_ARROW
push edx
mov dword [0x86ebc8], eax
call esi
push ebx
push ebx
push ebx
push ebx
mov dword [0x86fed4], eax
mov byte [0x86eed8], 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
mov edi, dword [sym.imp.USER32.dll_DestroyWindow]
cmp eax, ebx
mov dword [0x86eb98], eax
jne 0x42f6b9
push 0x30
push str.PiView___Ultrasound_3D
push 7
call fcn.0044b970
add esp, 4
push eax
push ebp
call esi
push ebp
call edi
push 0x86db84
push ebx
push ebx
push 0x447380
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
mov dword [0x86ee54], eax
jne 0x42f6ee
push 0x30
push str.PiView___Ultrasound_3D
push 8
call fcn.0044b970
add esp, 4
push eax
push ebp
call esi
push ebp
call edi
call fcn.00435480
call fcn.00438fa0
call fcn.00408980
call fcn.004089c0
call fcn.00408b20
push str.Times_New_Roman
push 0x12
push 1
push 2
push 3
push ebx
push ebx
push ebx
push ebx
push 0x2bc
push ebx
push ebx
push ebx
push 0x1e
call dword [sym.imp.GDI32.dll_CreateFontA]
mov dword [0x870e08], eax
call fcn.00420070
lea eax, [esp + 0x174]
push ebx
push eax
push 0x3c
push 0x1f
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp dword [esp + 0x174], 0xfffffff8
jge 0x42f755
mov dword [0x473e28], ebx
mov edx, dword [0x870e00]
cmp edx, ebx
je 0x42f7a8
push 0x474164
push 0x86ea40
call fcn.0046a560
add esp, 8
test eax, eax
jne 0x42f79e
cmp dword [0x870e04], ebx
jne 0x42f785
cmp dword [0x473e28], ebx
jne 0x42f79e
mov ecx, dword [0xa77a6c]
push ebx
push 0x4481f0
push ebp
push 0x1aa
push ecx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov edx, dword [0x870e00]
cmp edx, ebx
jne 0x42f7ba
cmp dword [0x473e28], ebx
je 0x42f7ba
mov dword [0x473e48], 0x60
mov esi, dword [esp + 0x1bc]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x42f89b
cmp dword [0x870ed4], ebx
je 0x42f7f8
mov edx, dword [0xa77a6c]
push 0x1c0
push edx
call dword [sym.imp.USER32.dll_LoadBitmapA]
mov edx, dword [0x870e00]
mov dword [0x870ed8], eax
mov al, byte [0x870dfc]
test al, al
mov eax, dword [0x473e28]
jne 0x42f831
cmp eax, ebx
jne 0x42f81c
cmp edx, ebx
jne 0x42f81c
push ebx
push 0x448150
push ebp
push 0x1ac
jmp 0x42f85a
mov ecx, dword [0xa77a6c]
push ebx
push 0x448150
push ebp
push 0x1ad
push ecx
jmp 0x42f860
cmp eax, ebx
jne 0x42f84e
cmp edx, ebx
jne 0x42f84e
mov edx, dword [0xa77a6c]
push ebx
push 0x448150
push ebp
push 0x1b1
push edx
jmp 0x42f860
push ebx
push 0x448150
push ebp
push 0x1af
mov eax, dword [0xa77a6c]
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamA]
push str.3D_VIEW
push eax
mov dword [0x870e64], eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, dword [0x870e64]
push ebx
push 1
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call edi
mov edx, dword [0x870e64]
push 5
push edx
call edi
mov eax, dword [0xa77b48]
push eax
call dword [sym.imp.USER32.dll_SetActiveWindow]
call fcn.0044b8c0
call fcn.00449150
push 0x7f00
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
mov dword [0x86e824], eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x42fa1d
push 2
push esi
push ebp
call fcn.004331e0
add esp, 0xc
cmp eax, 1
jne 0x42f8f5
push ebp
call fcn.00432250
add esp, 4
push ebx
push ebx
lea ecx, [esp + 0x1c]
push ebx
push ecx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x42fa0e
mov edi, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov esi, dword [sym.imp.USER32.dll_IsDialogMessageA]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov eax, dword [0x86ebc8]
lea edx, [esp + 0x14]
push edx
push eax
push ebp
call edi
test eax, eax
jne 0x42f9f5
mov eax, dword [0x870e40]
test eax, eax
je 0x42f94c
lea ecx, [esp + 0x14]
push ecx
push eax
call esi
test eax, eax
jne 0x42f9f5
mov eax, dword [0x870e3c]
test eax, eax
je 0x42f965
lea edx, [esp + 0x14]
push edx
push eax
call esi
test eax, eax
jne 0x42f9f5
mov eax, dword [0x87165c]
test eax, eax
je 0x42f97a
lea ecx, [esp + 0x14]
push ecx
push eax
call esi
test eax, eax
jne 0x42f9f5
mov eax, dword [0x745e6c]
test eax, eax
je 0x42f98f
lea edx, [esp + 0x14]
push edx
push eax
call esi
test eax, eax
jne 0x42f9f5
mov eax, dword [0x763638]
push eax
call fcn.00423660
add esp, 4
test eax, eax
je 0x42f9b9
mov edx, dword [0x86fed4]
mov eax, dword [0x763638]
lea ecx, [esp + 0x14]
push ecx
push edx
push eax
call edi
test eax, eax
jne 0x42f9f5
mov eax, dword [0x763634]
test eax, eax
je 0x42f9ce
lea ecx, [esp + 0x14]
push ecx
push eax
call esi
test eax, eax
jne 0x42f9f5
mov eax, dword [0x763640]
test eax, eax
je 0x42f9e3
lea edx, [esp + 0x14]
push edx
push eax
call esi
test eax, eax
jne 0x42f9f5
lea eax, [esp + 0x14]
push eax
call ebx
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
lea edx, [esp + 0x1c]
push 0
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
jne 0x42f91d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1a0
ret 0x10
mov eax, dword [0xa66ff4]
push ebx
push 1
push 0x721
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
push 1
call fcn.00461c10
nop
nop
nop
nop
nop
nop
nop
nop