Function at 0x401e37
Capabilities:
Capture webcam image
Read .ini file

Disassembly:
sub esp, 0x104
push ebx
push esi
mov esi, ecx
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xd]
mov byte [esp + 0xc], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push str..mcfg.ini
push 0
push str.OPEN
push str.config
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 1
jne 0x401e8d
push 0x3f9
mov ecx, esi
call fcn.004277f0
mov eax, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push eax
jmp 0x401eab
cmp eax, 2
jne 0x401ead
push 0x3fa
mov ecx, esi
call fcn.004277f0
mov ecx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push ecx
call ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str..mcfg.ini
lea edx, [esp + 0x14]
push 0x104
push edx
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x1c]
push 0x439b50
push str.OPEN_VID
push str.config
rep stosd dword es:[edi], eax
call ebp
test eax, eax
je 0x401efd
lea eax, [esp + 0x10]
mov ecx, esi
push eax
push 0x3ef
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push 0x104
push ecx
push 0x439b50
push str.OPEN_PID
push str.config
call ebp
test eax, eax
je 0x401f46
lea edx, [esp + 0x10]
mov ecx, esi
push edx
push 0x3f0
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea eax, [esp + 0x14]
push 0x104
push eax
push 0x439b50
push str.VID_MASTER
push str.config
call ebp
test eax, eax
je 0x401f8f
lea ecx, [esp + 0x10]
push ecx
push 0x3fd
mov ecx, esi
call fcn.004277f0
mov ecx, eax
call fcn.004278af
push str..mcfg.ini
lea edx, [esp + 0x14]
push 0x104
push edx
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x1c]
push 0x439b50
push str.PID_MASTER
push str.config
rep stosd dword es:[edi], eax
call ebp
test eax, eax
je 0x401fd8
lea eax, [esp + 0x10]
mov ecx, esi
push eax
push 0x3fe
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push 0x104
push ecx
push 0x439b50
push str.VID_SLAVE
push str.config
call ebp
test eax, eax
je 0x402021
lea edx, [esp + 0x10]
mov ecx, esi
push edx
push 0x3ff
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea eax, [esp + 0x14]
push 0x104
push eax
push 0x439b50
push str.PID_SLAVE
push str.config
call ebp
test eax, eax
je 0x40206a
lea ecx, [esp + 0x10]
push ecx
push 0x400
mov ecx, esi
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push str..mcfg.ini
push 0
push str.AUTO_CHANGE
push str.config
call edi
cmp eax, 1
jne 0x4020a3
push 0x3f2
mov ecx, esi
call fcn.004277f0
mov edx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push edx
call ebx
push str..mcfg.ini
push 0
push str.AUTO_INC_PID
push str.config
call edi
cmp eax, 1
jne 0x4020d6
push 0x3f3
mov ecx, esi
call fcn.004277f0
mov eax, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push eax
call ebx
push str..mcfg.ini
push 0
push str.ID_CHANGE
push str.config
call edi
cmp eax, 1
jne 0x402109
push 0x3fb
mov ecx, esi
call fcn.004277f0
mov ecx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push ecx
call ebx
push str..mcfg.ini
push 0
push str.CFG_CHANGE
push str.config
call edi
cmp eax, 1
jne 0x40213c
push 0x408
mov ecx, esi
call fcn.004277f0
mov edx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push edx
call ebx
push str..mcfg.ini
push 0
push str.CFG_SEL
push str.config
call edi
test eax, eax
jne 0x402189
push 0x404
mov ecx, esi
call fcn.004277f0
mov eax, dword [eax + 0x1c]
push 0
push 0
push 0xf1
push eax
call ebx
push 0x406
mov ecx, esi
call fcn.004277f0
mov ecx, dword [eax + 0x1c]
push 0
push 0
push 0xf1
push ecx
jmp 0x4021fd
cmp eax, 1
jne 0x4021c4
push 0x404
mov ecx, esi
call fcn.004277f0
mov edx, dword [eax + 0x1c]
push 0
push 0
push 0xf1
push edx
call ebx
push 0x406
mov ecx, esi
call fcn.004277f0
mov eax, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push eax
jmp 0x4021fd
cmp eax, 2
jne 0x4021ff
push 0x404
mov ecx, esi
call fcn.004277f0
mov ecx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push ecx
call ebx
push 0x406
mov ecx, esi
call fcn.004277f0
mov edx, dword [eax + 0x1c]
push 0
push 0
push 0xf1
push edx
call ebx
push str..mcfg.ini
push 0
push str.RESET_CHANGE
push str.config
call edi
cmp eax, 1
jne 0x402232
push 0x3fc
mov ecx, esi
call fcn.004277f0
mov eax, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push eax
call ebx
push str..mcfg.ini
push 0
push str.PROD_STR_CHANGE
push str.config
call edi
cmp eax, 1
jne 0x402265
push 0x40f
mov ecx, esi
call fcn.004277f0
mov ecx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push ecx
call ebx
push str..mcfg.ini
lea edx, [esp + 0x14]
push 0x104
push edx
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x1c]
push 0x439b50
push str.PROD_STR_MASTER
push str.config
rep stosd dword es:[edi], eax
call ebp
test eax, eax
je 0x4022ae
lea eax, [esp + 0x10]
mov ecx, esi
push eax
push 0x40b
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push 0x104
push ecx
push 0x439b50
push str.PROD_STR_SLAVE
push str.config
call ebp
test eax, eax
je 0x4022f7
lea edx, [esp + 0x10]
mov ecx, esi
push edx
push 0x40d
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea eax, [esp + 0x14]
push 0x104
push eax
push 0x439b50
push 0x4369f8
push str.config
call ebp
test eax, eax
je 0x402340
lea ecx, [esp + 0x10]
push ecx
push 0x410
mov ecx, esi
call fcn.004277f0
mov ecx, eax
call fcn.004278af
push str..mcfg.ini
push 0xffffffffffffffff
push str.PW_MAX_CNT
push str.config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x402363
mov edi, 7
push 0x419
mov ecx, esi
call fcn.004277f0
mov edx, dword [eax + 0x1c]
push 0
push edi
push 0x14e
push edx
call ebx
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea eax, [esp + 0x14]
push 0x104
push eax
push 0x439b50
push str.W_EN_DATA_LEN
push str.config
call ebp
test eax, eax
je 0x4023c6
lea ecx, [esp + 0x10]
push ecx
push 0x414
mov ecx, esi
call fcn.004277f0
mov ecx, eax
call fcn.004278af
push str..mcfg.ini
lea edx, [esp + 0x14]
push 0x104
push edx
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x1c]
push 0x439b50
push str.W_EN_DATA
push str.config
rep stosd dword es:[edi], eax
call ebp
test eax, eax
je 0x40240f
lea eax, [esp + 0x10]
mov ecx, esi
push eax
push 0x411
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push str..mcfg.ini
push 0
push str.IS_W
push str.config
call edi
cmp eax, 1
jne 0x402448
push 0x422
mov ecx, esi
call fcn.004277f0
mov ecx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push ecx
jmp 0x402466
cmp eax, 2
jne 0x402468
push 0x423
mov ecx, esi
call fcn.004277f0
mov edx, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push edx
call ebx
push str..mcfg.ini
push 0
push str.AUTO_CHG_W
push str.config
call edi
cmp eax, 1
jne 0x40249b
push 0x41e
mov ecx, esi
call fcn.004277f0
mov eax, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push eax
call ebx
push str..mcfg.ini
push 3
push 0x4369b8
push str.config
call edi
mov edi, eax
test edi, edi
jl 0x4024b9
cmp edi, 3
jle 0x4024be
mov edi, 3
push 0x41f
mov ecx, esi
call fcn.004277f0
mov ecx, dword [eax + 0x1c]
push 0
push edi
push 0x14e
push ecx
call ebx
push str..mcfg.ini
lea edx, [esp + 0x14]
push 0x104
push edx
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x1c]
push 0x439b50
push 0x4369b4
push str.config
rep stosd dword es:[edi], eax
call ebp
test eax, eax
je 0x402521
lea eax, [esp + 0x10]
mov ecx, esi
push eax
push 0x41c
call fcn.004277f0
mov ecx, eax
call fcn.004278af
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x10]
push str..mcfg.ini
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push 0x104
push ecx
push 0x439b50
push str.ADDR
push str.config
call ebp
test eax, eax
pop ebp
je 0x40256b
lea edx, [esp + 0xc]
mov ecx, esi
push edx
push 0x41b
call fcn.004277f0
mov ecx, eax
call fcn.004278af
push str..mcfg.ini
push 0
push str.IS_UNICODE_PW
push str.config
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 1
jne 0x4025a2
push 0x425
mov ecx, esi
call fcn.004277f0
mov eax, dword [eax + 0x1c]
push 0
push 1
push 0xf1
push eax
call ebx
pop edi
pop esi
pop ebx
add esp, 0x104
ret