Function at 0x4361f0
Capabilities:
Print debug messages
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x492685
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
mov ecx, dword [esp + 0x160]
push ebx
xor ebx, ebx
xor eax, eax
cmp ecx, ebx
push ebp
mov ebp, dword [0x4f2160]
push esi
setne al
push edi
mov esi, eax
mov ecx, 0x23
xor eax, eax
lea edi, [esp + 0x54]
mov dword [esp + 0x50], ebx
rep stosd dword es:[edi], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], 0x24
call fcn.00434130
push str.C:Secure1000Secure.ini
push 0x280
push str.SCAN_LINES
push str.SYSTEM
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*4]
shl ecx, 5
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_4
mov dword [esp + 0x168], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x4c], ebx
call fcn.0043b9e0
cmp edi, ebx
mov dword [esp + 0x1c], eax
je 0x4362c1
lea edx, [esp + 0x48]
mov ecx, edi
push edx
call fcn.00438b20
cmp eax, ebx
mov dword [esp + 0x44], eax
jne 0x4362fe
push str.Scan_failed.__Unable_to_connect_to_the_scanner.__r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_2
push str.Please_try_again_by_restarting_the_system
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
mov ecx, dword [0x4f1ac0]
push 0x40000
mov eax, dword [esp + 0x14]
push str.Scan_Failed
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x436948
mov edx, dword [esp + 0x18]
lea eax, [edx + edx]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov edi, eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edi
lea edx, [ecx + ecx]
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
cmp edi, ebx
mov dword [esp + 0x2c], eax
je 0x43632e
cmp eax, ebx
jne 0x43634f
push str.Scan_failed.__Internal_Error.__Could_not_allocate_memory.__r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_2
push str.Please_try_again_by_restarting_the_system
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
jmp 0x43669d
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Empty
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
lea ecx, [eax + eax]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
cmp esi, ebx
rep stosb byte es:[edi], al
je 0x4363a5
mov eax, dword [0x4f1ac0]
push ebx
push 0x138d
push 0x8020
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push ebx
call fcn.00441920
add esp, 4
cmp eax, ebx
je 0x4363ba
mov edx, dword [eax]
push esi
mov ecx, eax
call dword [edx + 0x1c]
call fcn.00430b00
mov edi, dword [eax + 0x3c]
call fcn.00430b00
mov eax, dword [eax + 0x40]
cmp eax, ebx
jge 0x4363d2
xor eax, eax
jmp 0x4363de
cmp eax, 0x1f4
jle 0x4363de
mov eax, 0x1f4
cmp edi, ebx
jge 0x4363e6
xor edi, edi
jmp 0x4363f3
cmp edi, 0x1f4
jle 0x4363f3
mov edi, 0x1f4
mov esi, dword [esp + 0x44]
push edi
push eax
push esi
mov ecx, dword [esi]
call dword [ecx + 0x148]
lea eax, [esp + 0x20]
mov edx, dword [esi]
lea ecx, [esp + 0x3c]
push eax
push ecx
lea eax, [esp + 0x58]
lea ecx, [esp + 0x54]
push eax
mov eax, dword [esp + 0x40]
push ecx
lea ecx, [esp + 0x28]
push eax
push ecx
push esi
call dword [edx + 0x34]
cmp eax, ebx
jne 0x4365e8
cmp dword [esp + 0x20], 0xfffffffd
jne 0x436482
mov eax, dword [esp + 0x3c]
cmp ax, bx
jbe 0x4366a1
cmp ax, 1
jne 0x4366a1
cmp dword [esp + 0x50], 0x15
jne 0x4366a1
mov edi, dword [esp + 0x1c]
push str.Scan_Failed
push 0x433670
push 1
push 0x15
mov ecx, edi
mov dword [esp + 0x30], 1
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x60], ebx
call fcn.0043bd00
jmp 0x436486
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x20], 1
jne 0x4366a5
call fcn.00434130
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x30]
lea ecx, [esp + 0x38]
push edx
lea edx, [esp + 0x28]
push ecx
push edx
push edi
mov dword [esp + 0x34], eax
push eax
mov eax, dword [esp + 0x48]
push eax
mov byte [0x4f21cd], 1
call fcn.00433870
add esp, 0x18
test eax, eax
je 0x4366a1
lea edx, [esp + 0x14]
mov ecx, dword [esi]
push edx
lea eax, [esp + 0x34]
lea edx, [esp + 0x3c]
push eax
push edx
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x30]
push edi
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
push esi
call dword [ecx + 0x30]
cmp dword [esp + 0x14], ebx
je 0x436508
mov ecx, dword [esp + 0x24]
push ecx
push edi
call fcn.00433c70
add esp, 8
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
lea eax, [esp + 0xf0]
push str.sample:__d__OutSample:__d___row:__d___col:__d
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x18
lea ecx, [esp + 0xe0]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
cmp eax, ebx
mov edi, eax
mov dword [esp + 0x14], ecx
jle 0x4366a1
cmp ecx, ebx
jle 0x4366a1
cmp dword [esp + 0x24], ebx
je 0x4366a1
push 0xc8
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebx
mov byte [esp + 0x168], 1
je 0x436590
mov ecx, eax
call fcn.00451580
mov esi, eax
jmp 0x436592
xor esi, esi
cmp esi, ebx
mov byte [esp + 0x168], bl
mov dword [esp + 0x28], esi
je 0x4366a1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
push edx
push edi
push eax
mov ecx, esi
call fcn.00451900
push ebx
mov ecx, esi
call fcn.00455830
test eax, eax
jne 0x4366a1
mov ecx, esi
call fcn.00451700
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], 0xfffffffc
jmp 0x4366a1
push str.Scan_failed._Lost_connection_to_the_scanner.__r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_2
push str.Please_try_again_by_restarting_the_system_r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
push str.If_the_problem_persists__please_call_service_technician.
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
je 0x436624
mov edx, dword [esp + 0x10]
push edx
call fcn.0043c150
cmp ebp, ebx
je 0x436634
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.00430460
mov ecx, dword [esp + 0x10]
mov edx, dword [0x4f1ac0]
push 0x40000
push str.Scan_Failed
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp ebp, ebx
je 0x43669d
push 0x4f11f4
mov ecx, ebp
call fcn.00430460
push str.Scan_Failed
lea eax, [esp + 0x18]
push str.TEXT_SCANFAIL
push eax
call fcn.00430940
add esp, 0xc
mov eax, dword [eax]
push ebx
push ebx
push ebx
push ebx
push eax
mov ecx, ebp
mov byte [esp + 0x17c], 2
call fcn.00430310
lea ecx, [esp + 0x14]
mov byte [esp + 0x168], bl
call sub.MFC42.DLL_CString::CString
mov dword [esp + 0x40], ebx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x4366b4
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x4366c5
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp dword [esp + 0x40], ebx
je 0x436948
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
jne 0x4367ae
push str.Scan_failed.__Failed_to_start_the_scanner.
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_2
push str._r_n_r_nPlease_verify_that:_r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
push str.________a__Scanner_is_powered_on._r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
push str.________b__The_RS_232_DB_9_connector_is_attached_to_the_interface_box._r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
push str.Please_warmup_the_system_to_try_again.
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
cmp edi, ebx
je 0x436732
mov eax, dword [esp + 0x10]
mov ecx, edi
push eax
call fcn.0043c150
cmp ebp, ebx
je 0x436742
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, ebp
call fcn.00430460
mov edx, dword [esp + 0x10]
mov eax, dword [0x4f1ac0]
push 0x40000
push str.Scan_Failed
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp ebp, ebx
je 0x436948
push 0x4f11f4
mov ecx, ebp
call fcn.00430460
push str.Scan_Failed
lea ecx, [esp + 0x18]
push str.TEXT_SCANFAIL
push ecx
call fcn.00430940
add esp, 0xc
mov eax, dword [eax]
push ebx
push ebx
push ebx
push ebx
push eax
mov ecx, ebp
mov byte [esp + 0x17c], 3
call fcn.00430310
mov byte [esp + 0x168], bl
lea ecx, [esp + 0x14]
jmp 0x436943
cmp eax, 0xfffffffe
jne 0x436860
push str.Data_acquisition_from_NI_card_failed._r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_2
push str.Please_scan_again.__If_the_problem_persists__restart_the_system.
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
cmp edi, ebx
je 0x4367e3
mov edx, dword [esp + 0x10]
mov ecx, edi
push edx
call fcn.0043c150
cmp ebp, ebx
je 0x4367f3
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.00430460
mov ecx, dword [esp + 0x10]
mov edx, dword [0x4f1ac0]
push 0x40000
push str.Scan_Failed
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp ebp, ebx
je 0x436948
push 0x4f11f4
mov ecx, ebp
call fcn.00430460
push str.Scan_Failed
lea eax, [esp + 0x18]
push str.TEXT_SCANFAIL
push eax
call fcn.00430940
add esp, 0xc
mov eax, dword [eax]
push ebx
push ebx
push ebx
push ebx
push eax
mov ecx, ebp
mov byte [esp + 0x17c], 4
call fcn.00430310
mov byte [esp + 0x168], bl
lea ecx, [esp + 0x14]
jmp 0x436943
cmp eax, 0xfffffffd
jne 0x43689a
cmp edi, ebx
je 0x436886
mov ecx, dword [esp + 0x3c]
push str.Scan_Failed
push 0x433670
push 1
lea edx, [esp + 0x5c]
push ecx
push edx
mov ecx, edi
call fcn.0043bbb0
mov eax, dword [esp + 0x44]
push 0x4b0c58
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
jmp 0x436948
cmp eax, 0xfffffffc
jne 0x436948
push str.Failed_to_create_image_from_the_acquired_data._r_n_r_n
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_2
push str.Please_scan_again.__If_the_problem_persists__restart_the_system.
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
cmp edi, ebx
je 0x4368cf
mov edx, dword [esp + 0x10]
mov ecx, edi
push edx
call fcn.0043c150
cmp ebp, ebx
je 0x4368df
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.00430460
mov ecx, dword [esp + 0x10]
mov edx, dword [0x4f1ac0]
push 0x40000
push str.Scan_Failed
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp ebp, ebx
je 0x436948
push 0x4f11f4
mov ecx, ebp
call fcn.00430460
push str.Scan_Failed
lea eax, [esp + 0x18]
push str.TEXT_SCANFAIL
push eax
call fcn.00430940
add esp, 0xc
mov eax, dword [eax]
push ebx
push ebx
push ebx
push ebx
push eax
mov ecx, ebp
mov byte [esp + 0x17c], 5
call fcn.00430310
mov byte [esp + 0x168], bl
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov edx, dword [0x4f1ac0]
push esi
push 0x1389
push 0x8020
push edx
mov byte [ecx + 0x4f21cc], 1
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x10]
mov dword [esp + 0x168], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x160]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x15c
ret 4