Function at 0x402b90
Capabilities:
Get common file path

Disassembly:
sub esp, 0x48
mov eax, dword [0x421fbc]
xor eax, esp
mov dword [esp + 0x44], eax
fld dword [0x41c488]
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov edi, 1
mov dword [esi + 0x110], edi
mov dword [esi + 0xa50], ebx
mov byte [esi + 0x314], bl
mov dword [esi + 4], ebx
cmp dword [0x4429e4], ebx
jle 0x402be5
mov eax, dword [esi + 4]
fst dword [esi + eax*4 + 0x4d0]
add dword [esi + 4], edi
mov ecx, dword [esi + 4]
cmp ecx, dword [0x4429e4]
jl 0x402bcd
push 0x500
fstp st(0)
lea edx, [esi + 0x510]
push ebx
push edx
call fcn.0040a680
push 0x100
lea eax, [esi + 0x214]
push ebx
push eax
call fcn.0040a680
add esp, 0x18
mov dword [esi + 0x414], ebx
mov dword [esi + 4], ebx
cmp dword [0x4429e4], ebx
jle 0x402c3f
fld dword [0x41c488]
mov eax, dword [esi + 4]
fst dword [esi + eax*4 + 0x418]
add dword [esi + 4], edi
mov ecx, dword [esi + 4]
cmp ecx, dword [0x4429e4]
jl 0x402c25
fstp st(0)
mov edx, dword [0x41c630]
fld1
mov dword [esi + 0x458], edx
mov eax, dword [0x41c634]
mov dword [esi + 0x45c], eax
movzx ecx, byte [0x41c638]
mov byte [esi + 0x460], cl
mov edx, dword [0x41c630]
mov dword [esi + 0x478], edx
mov eax, dword [0x41c634]
mov dword [esi + 0x47c], eax
movzx ecx, byte [0x41c638]
xor eax, eax
mov byte [esi + 0x480], cl
mov dword [esi + 0xa10], eax
mov dword [esi + 0xa14], eax
mov dword [esi + 0xa18], eax
mov dword [esi + 0xa1c], eax
mov dword [esi + 0xa20], eax
mov dword [esi + 0xa24], eax
mov dword [esi + 0xa28], eax
mov dword [esi + 0xa2c], eax
mov dword [esi + 0xa30], eax
mov dword [esi + 0xa34], eax
mov dword [esi + 0xa38], eax
mov dword [esi + 0xa3c], eax
mov dword [esi + 0xa40], eax
mov dword [esi + 0xa44], eax
mov dword [esi + 0xa48], eax
mov dword [esi + 0xa4c], eax
mov dword [esi + 4], ebx
mov eax, 8
mov edx, dword [esi + 4]
fst dword [esi + edx*4 + 0x4d0]
add dword [esi + 4], edi
cmp dword [esi + 4], eax
jb 0x402cf3
xor eax, eax
fstp st(0)
mov dword [esi + 0x49c], 0x2710
mov dword [esi + 0x4a0], 0xbb8
mov dword [esi + 0x4b0], eax
mov dword [esi + 0x4b4], eax
mov dword [esi + 0x4b8], eax
mov dword [esi + 0x4bc], eax
mov dword [esi + 0x4c0], eax
mov dword [esi + 0x4c4], eax
mov dword [esi + 0x4c8], eax
mov dword [esi + 0x4cc], eax
lea eax, [esi + 0x314]
push eax
push 0xff
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, 6
cmp dword [0x4429e4], edi
mov eax, str.Devs6.cfg
je 0x402d76
mov eax, str.Devs1x8.cfg
push 0x41c614
push eax
call fcn.0040b2f4
add esp, 8
cmp eax, ebx
mov dword [esp + 0xc], eax
jne 0x402dca
cmp dword [0x4429e4], edi
mov eax, 0x41c5ec
je 0x402d9e
mov eax, 0x41c5c4
push eax
mov eax, dword [esi]
push 0x400
push 0x400
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
mov dword [esi + 0x110], ebx
pop esi
pop ebx
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.0040a66a
add esp, 0x48
ret
push eax
lea ecx, [esi + 8]
push 0xff
push ecx
call fcn.0040b0a9
add esp, 0xc
test eax, eax
je 0x4034db
push ebp
lea eax, [esi + 8]
lea edx, [eax + 1]
jmp 0x402df0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x402df0
sub eax, edx
cmp eax, 4
jb 0x4034bc
push 0x41c308
lea edi, [esi + 8]
push edi
call fcn.0040a190
add esp, 8
test eax, eax
je 0x402e2c
add eax, edi
mov edx, edi
sub edx, eax
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x402e20
mov al, byte [esi + 8]
cmp al, 0x3b
je 0x4034bc
cmp al, 0x23
je 0x4034bc
cmp al, 0x2f
je 0x4034bc
lea eax, [esi + 8]
push 0x3d
push eax
call fcn.0040ac60
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4034bc
mov edi, 1
add ebx, edi
mov dword [esi + 4], edi
cmp dword [0x4429e4], edi
jl 0x402edd
mov ecx, dword [esi + 4]
push ecx
lea edx, [esp + 0x18]
push str.Color_d
push edx
call fcn.0040ab25
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x402e90
sub eax, edx
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esi + 8]
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
je 0x402ec1
add dword [esi + 4], edi
mov ecx, dword [esi + 4]
cmp ecx, dword [0x4429e4]
jle 0x402e71
jmp 0x402edd
mov edx, dword [esi + 4]
lea eax, [esi + edx*4 + 0xa0c]
push eax
lea ecx, [ebx + 1]
push 0x41c5b8
push ecx
call fcn.0040afcc
add esp, 0xc
mov dword [esi + 4], edi
cmp dword [0x4429e4], edi
jl 0x402f4f
mov edx, dword [esi + 4]
push edx
lea eax, [esp + 0x18]
push str.Scale_d
push eax
call fcn.0040ab25
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x402f05
sub eax, edx
push eax
lea ecx, [esp + 0x18]
push ecx
lea eax, [esi + 8]
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
je 0x402f36
add dword [esi + 4], edi
mov edx, dword [esi + 4]
cmp edx, dword [0x4429e4]
jle 0x402ee8
jmp 0x402f4f
mov eax, dword [esi + 4]
lea ecx, [esi + eax*4 + 0x4cc]
push ecx
push 0x41c5ac
push ebx
call fcn.0040afcc
add esp, 0xc
mov dword [esi + 4], edi
cmp dword [0x4429e4], edi
jl 0x402fca
lea ebx, [ebx]
mov edx, dword [esi + 4]
push edx
lea eax, [esp + 0x18]
push str.StartRecordLevel_d
push eax
call fcn.0040ab25
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x402f80
sub eax, edx
push eax
lea ecx, [esp + 0x18]
push ecx
lea eax, [esi + 8]
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
je 0x402fb1
add dword [esi + 4], edi
mov edx, dword [esi + 4]
cmp edx, dword [0x4429e4]
jle 0x402f60
jmp 0x402fca
mov eax, dword [esi + 4]
lea ecx, [esi + eax*4 + 0x414]
push ecx
push 0x41c5ac
push ebx
call fcn.0040afcc
add esp, 0xc
mov dword [esi + 4], edi
cmp dword [0x4429e4], edi
jl 0x403077
lea esp, [esp]
mov edx, dword [esi + 4]
push edx
lea eax, [esp + 0x18]
push str.AverageNumber_d
push eax
call fcn.0040ab25
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x403000
sub eax, edx
push eax
lea ecx, [esp + 0x18]
push ecx
lea eax, [esi + 8]
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
je 0x403031
add dword [esi + 4], edi
mov edx, dword [esi + 4]
cmp edx, dword [0x4429e4]
jle 0x402fe0
jmp 0x403077
mov eax, dword [esi + 4]
lea ecx, [esi + eax*4 + 0x4ac]
push ecx
push 0x41c584
push ebx
call fcn.0040afcc
mov edx, dword [esi + 4]
lea eax, [esi + edx*4 + 0x4ac]
add esp, 0xc
cmp dword [eax], edi
jae 0x40305a
mov dword [eax], edi
mov eax, dword [esi + 4]
cmp dword [esi + eax*4 + 0x4ac], 0x989680
lea eax, [esi + eax*4 + 0x4ac]
jbe 0x403077
mov dword [eax], 0x989680
push 9
push str.COMNumber
lea edi, [esi + 8]
push edi
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x4030a7
push 4
lea ecx, [esi + 0x108]
push ebx
push ecx
call fcn.0040ae40
add esp, 0xc
mov byte [esi + 0x10c], 0
push 7
push str.DevName
push edi
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x4030fc
lea edi, [esi + 0x114]
mov edx, edi
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x4030c7
push 0x22
push edi
call fcn.0040ac60
push 0x22
push edi
mov ebp, eax
call fcn.0040ad20
mov byte [eax], 0
lea eax, [ebp + 1]
add esp, 0x10
sub edi, eax
mov cl, byte [eax]
mov byte [eax + edi], cl
add eax, 1
test cl, cl
jne 0x4030f0
push 5
lea eax, [esi + 8]
push str.DevSN
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x40315d
lea edx, [esi + 0x214]
mov eax, ebx
sub edx, ebx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x403120
push 0x22
lea ebp, [esi + 0x214]
push ebp
call fcn.0040ac60
push 0x22
push ebp
mov edi, eax
call fcn.0040ad20
mov byte [eax], 0
lea eax, [edi + 1]
mov edx, ebp
add esp, 0x10
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x403151
push 6
lea eax, [esi + 8]
push str.Folder
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x4031ac
push 0x3a
push ebx
call fcn.0040ac60
push 0x5c
push ebx
mov edi, eax
call fcn.0040ad20
add esp, 0x10
test edi, edi
je 0x4031ac
test eax, eax
je 0x4031ac
mov byte [eax + 1], 0
lea eax, [edi - 1]
lea edx, [esi + 0x314]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x4031a0
push 7
push str.Xwindow
lea ebp, [esi + 8]
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x4031d8
lea edx, [esi + 0xa58]
push edx
push 0x41c554
push ebx
call fcn.0040afcc
add esp, 0xc
push 7
push str.Ywindow
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x403201
lea eax, [esi + 0xa5c]
push eax
push 0x41c554
push ebx
call fcn.0040afcc
add esp, 0xc
push 0x10
push str.StartMeasureType
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x40322a
lea eax, [esi + 0x414]
push eax
push 0x41c554
push ebx
call fcn.0040afcc
add esp, 0xc
push 0xd
push str.MaxFileLength
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x403253
lea eax, [esi + 0x49c]
push eax
push 0x41c554
push ebx
call fcn.0040afcc
add esp, 0xc
cmp dword [esi + 0x49c], 0xa
jae 0x403266
mov dword [esi + 0x49c], 0xa
push 0x12
push str.StartRecordPrequel
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x40328f
lea eax, [esi + 0x4a0]
push eax
push 0x41c554
push ebx
call fcn.0040afcc
add esp, 0xc
mov eax, dword [esi + 0x4a0]
mov edi, 0x14
cmp eax, edi
jge 0x4032a6
mov dword [esi + 0x4a0], edi
jmp 0x4032b7
cmp eax, 0x7d00
jle 0x4032b7
mov dword [esi + 0x4a0], 0x7d00
push 0x10
push str.DelayRecordAfter
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x4032e0
lea ecx, [esi + 0x4a4]
push ecx
push 0x41c554
push ebx
call fcn.0040afcc
add esp, 0xc
cmp dword [esi + 0x4a4], edi
jge 0x4032ee
mov dword [esi + 0x4a4], edi
push 0xf
push str.StartRecordTime
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x403317
lea edx, [esi + 0x4a8]
push edx
push 0x41c4ec
push ebx
call fcn.0040afcc
add esp, 0xc
push 8
push str.ICPstate
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x403340
lea eax, [esi + 0xa50]
push eax
push 0x41c554
push ebx
call fcn.0040afcc
add esp, 0xc
push 0xc
push str.ReadChannels
push ebp
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x4033ac
push 0x5b
push ebx
call fcn.0040ac60
push 0x5d
push ebx
mov edi, eax
call fcn.0040ac60
add esp, 0x10
test edi, edi
je 0x4033ac
test eax, eax
je 0x4033ac
mov byte [eax], 0
lea eax, [edi + 1]
mov ecx, eax
lea edi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x403380
sub ecx, edi
cmp ecx, dword [0x4429e4]
jne 0x4033ac
mov ecx, esi
sub ecx, eax
lea edx, [ecx + 0x438]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x4033a0
push 0xf
lea eax, [esi + 8]
push str.AnalyzeChannels
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x40341c
push 0x5b
push ebx
call fcn.0040ac60
push 0x5d
push ebx
mov edi, eax
call fcn.0040ac60
add esp, 0x10
test edi, edi
je 0x40341c
test eax, eax
je 0x40341c
mov byte [eax], 0
lea eax, [edi + 1]
mov ecx, eax
lea edi, [ecx + 1]
jmp 0x4033f0
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x4033f0
sub ecx, edi
cmp ecx, dword [0x4429e4]
jne 0x40341c
lea edx, [esi + 0x458]
sub edx, eax
jmp 0x403410
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x403410
push 0xe
lea eax, [esi + 8]
push str.RecordChannels
push eax
call fcn.0040afeb
add esp, 0xc
test eax, eax
jne 0x4034bc
push 0x5b
push ebx
call fcn.0040ac60
push 0x5d
push ebx
mov edi, eax
call fcn.0040ac60
add esp, 0x10
test edi, edi
je 0x40348c
test eax, eax
je 0x40348c
mov byte [eax], 0
lea eax, [edi + 1]
mov ecx, eax
lea edi, [ecx + 1]
nop
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x403460
sub ecx, edi
cmp ecx, dword [0x4429e4]
jne 0x40348c
lea edx, [esi + 0x478]
sub edx, eax
jmp 0x403480
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x403480
xor eax, eax
mov dword [esi + 0x498], 0
cmp dword [0x4429e4], eax
jle 0x4034bc
cmp byte [esi + eax + 0x478], 0x2b
jne 0x4034b1
add dword [esi + 0x498], 1
add eax, 1
cmp eax, dword [0x4429e4]
jl 0x4034a0
mov edx, dword [esp + 0x10]
push edx
lea eax, [esi + 8]
push 0xff
push eax
call fcn.0040b0a9
add esp, 0xc
test eax, eax
jne 0x402de5
pop ebp
mov eax, dword [esp + 0xc]
push eax
call fcn.0040adc0
mov ebx, 1
add esp, 4
mov dword [esi + 4], ebx
cmp dword [0x4429e4], ebx
jl 0x40356b
fldz
mov eax, dword [esi + 4]
fld dword [esi + eax*4 + 0x4cc]
lea ecx, [eax + eax*4]
fchs
fstp dword [esi + ecx*4 + 0x510]
mov eax, dword [esi + 4]
fld dword [esi + eax*4 + 0x414]
lea edx, [eax + eax*4 + 0x145]
fchs
fstp dword [esi + edx*4]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
fst dword [esi + eax*4 + 0x518]
mov eax, dword [esi + 4]
fld dword [esi + eax*4 + 0x414]
lea ecx, [eax + eax*4]
fstp dword [esi + ecx*4 + 0x51c]
mov eax, dword [esi + 4]
fld dword [esi + eax*4 + 0x4cc]
lea edx, [eax + eax*4]
fstp dword [esi + edx*4 + 0x520]
add dword [esi + 4], ebx
mov eax, dword [esi + 4]
cmp eax, dword [0x4429e4]
jle 0x4034fa
fstp st(0)
mov dword [esi + 4], 0
cmp dword [0x4429e4], 0
jle 0x4035a6
mov edi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ecx, dword [esi + 4]
mov edx, dword [esi + ecx*4 + 0xa10]
push edx
call edi
mov ecx, dword [esi + 4]
mov dword [esi + ecx*4 + 0xa30], eax
add dword [esi + 4], ebx
mov edx, dword [esi + 4]
cmp edx, dword [0x4429e4]
jl 0x403581
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040a66a
add esp, 0x48
ret