Function at 0x41f9c0
Capabilities:
Check http status code
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x610
mov eax, dword [0x5bf500]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x5d2a8b], 0
push esi
push edi
je 0x41f9f0
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051ece9
mov esp, ebp
pop ebp
ret
push str.vcsFPClient.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x643708], eax
test eax, eax
je 0x420a06
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.vcsDatabaseClose
push eax
call esi
push str.vcsDatabaseCloseAppStorage
push dword [0x643708]
mov dword [0x6439b4], eax
call esi
push str.vcsDatabaseCloseUser
push dword [0x643708]
mov dword [0x643798], eax
call esi
push str.vcsDatabaseCloseTemplate
push dword [0x643708]
mov dword [0x6436f8], eax
call esi
push str.vcsDatabaseDeleteUser
push dword [0x643708]
mov dword [0x644a14], eax
call esi
push str.vcsDatabaseExSetTemplateData
push dword [0x643708]
mov dword [0x5d2ae4], eax
call esi
push str.vcsTemplateSetFinger
push dword [0x643708]
mov dword [0x643720], eax
call esi
push str.vcsTemplateGetData
push dword [0x643708]
mov dword [0x64372c], eax
call esi
push str.vcsDatabaseCreateTemplate
push dword [0x643708]
mov dword [0x6449d4], eax
call esi
push str.vcsDatabaseSetUserData
push dword [0x643708]
mov dword [0x643794], eax
call esi
push str.vcsDatabaseCreateUser
push dword [0x643708]
mov dword [0x6449e0], eax
call esi
push str.vcsDatabaseCreateAppStorage
push dword [0x643708]
mov dword [0x643730], eax
call esi
push str.vcsDatabaseFormatDatabaseW
push dword [0x643708]
mov dword [0x6449ec], eax
call esi
push str.vcsDatabaseOpenW
push dword [0x643708]
mov dword [0x643700], eax
call esi
push str.vcsMatcherClose
push dword [0x643708]
mov dword [0x6436f0], eax
call esi
push str.vcsTemplateSetUserID
push dword [0x643708]
mov dword [0x6436dc], eax
call esi
push str.vcsTemplateGetDataSize
push dword [0x643708]
mov dword [0x643740], eax
call esi
push str.vcsMatcherAddImageToTemplate
push dword [0x643708]
mov dword [0x643780], eax
call esi
push str.vcsImageGetRows
push dword [0x643708]
mov dword [0x6439b0], eax
call esi
push str.vcsImageGetColumns
push dword [0x643708]
mov dword [0x6449e4], eax
call esi
mov dword [0x643744], eax
push str.vcsImageGetQuality
push dword [0x643708]
call esi
push str.vcsHandleDestroy
push dword [0x643708]
mov dword [0x6439c8], eax
call esi
push str.vcsMatcherCheckImageQuality
push dword [0x643708]
mov dword [0x643704], eax
call esi
push str.vcsMatcherOpen
push dword [0x643708]
mov dword [0x644a18], eax
call esi
push str.vcsMatchResultsGetUserID
push dword [0x643708]
mov dword [0x5d2ad8], eax
call esi
push str.vcsMatchResultsGetStatus
push dword [0x643708]
mov dword [0x6436fc], eax
call esi
push str.vcsMatcherMatchImageToTemplates
push dword [0x643708]
mov dword [0x64376c], eax
call esi
push str.vcsSensorLEDSwipeRejected
push dword [0x643708]
mov dword [0x643768], eax
call esi
push str.vcsSensorLEDSwipeAccepted
push dword [0x643708]
mov dword [0x643734], eax
call esi
push str.vcsMatcherExtractTemplate
push dword [0x643708]
mov dword [0x5d2ad4], eax
call esi
push str.vcsDatabaseEraseDatabase
push dword [0x643708]
mov dword [0x644a1c], eax
call esi
push str.vcsSetParam
push dword [0x643708]
mov dword [0x64379c], eax
call esi
push str.vcsDatabaseOpenNextUser
push dword [0x643708]
mov dword [0x643790], eax
call esi
push str.vcsDatabaseOpenNextTemplate
push dword [0x643708]
mov dword [0x643778], eax
call esi
push str.vcsBufferFree
push dword [0x643708]
mov dword [0x6439ac], eax
call esi
push str.vcsDatabaseGetUserData
push dword [0x643708]
mov dword [0x643718], eax
call esi
push str.vcsDatabaseExGetTemplateData
push dword [0x643708]
mov dword [0x5d2ae8], eax
call esi
push str.vcsDatabaseOpenFirstTemplate
push dword [0x643708]
mov dword [0x6436ec], eax
call esi
push str.vcsDatabaseOpenFirstUser
push dword [0x643708]
mov dword [0x643784], eax
call esi
push str.vcsSensorLEDSetEvent
push dword [0x643708]
mov dword [0x6449d0], eax
call esi
mov dword [0x64373c], eax
push str.vcsMatchResultsGetScore
push dword [0x643708]
call esi
push str.vcsMatcherMatchTemplates
push dword [0x643708]
mov dword [0x5d2ad0], eax
call esi
push str.vcsMatcherSetAccuracy
push dword [0x643708]
mov dword [0x643714], eax
call esi
push str.vcsClientEventsAddCallback
push dword [0x643708]
mov dword [0x64374c], eax
call esi
push str.vcsClientCreate
push dword [0x643708]
mov dword [0x5d2aec], eax
call esi
push str.vcsClientDestroy
push dword [0x643708]
mov dword [0x6436e0], eax
call esi
push str.vcsClientEventsRemoveCallback
push dword [0x643708]
mov dword [0x6449d8], eax
call esi
push str.vcsSensorGetFingerprintAsyncW
push dword [0x643708]
mov dword [0x643770], eax
call esi
push str.vcsSensorAbortFingerprint
push dword [0x643708]
mov dword [0x64370c], eax
call esi
push str.vcsEventFreeDataString
push dword [0x643708]
mov dword [0x643738], eax
call esi
push str.vcsEventGetDataStringW
push dword [0x643708]
mov dword [0x6436f4], eax
call esi
push str.vcsEventGetId
push dword [0x643708]
mov dword [0x6439bc], eax
call esi
push str.vcsEventGetStatus
push dword [0x643708]
mov dword [0x643724], eax
call esi
push str.vcsEventGetData
push dword [0x643708]
mov dword [0x643728], eax
call esi
push str.vcsSensorEventsAddCallback
push dword [0x643708]
mov dword [0x5d2ae0], eax
call esi
push str.vcsSensorEventsRemoveCallback
push dword [0x643708]
mov dword [0x6439c4], eax
call esi
push str.vcsSensorOpenW
push dword [0x643708]
mov dword [0x643788], eax
call esi
push str.vcsSensorClose
push dword [0x643708]
mov dword [0x643748], eax
call esi
push str.vcsSensorGetVersionW
push dword [0x643708]
mov dword [0x6439a8], eax
call esi
push str.vcsSensorGetDeviceInfo
push dword [0x643708]
mov dword [0x6439b8], eax
call esi
push str.vcsDatabaseDeleteUserData
push dword [0x643708]
mov dword [0x6439c0], eax
call esi
cmp dword [0x6439b4], 0
mov dword [0x64377c], eax
je 0x420a06
cmp dword [0x643798], 0
je 0x420a06
cmp dword [0x6436f8], 0
je 0x420a06
cmp dword [0x644a14], 0
je 0x420a06
cmp dword [0x5d2ae4], 0
je 0x420a06
cmp dword [0x643720], 0
je 0x420a06
cmp dword [0x64372c], 0
je 0x420a06
cmp dword [0x6449d4], 0
je 0x420a06
cmp dword [0x643794], 0
je 0x420a06
cmp dword [0x6449e0], 0
je 0x420a06
cmp dword [0x643730], 0
je 0x420a06
cmp dword [0x6449ec], 0
je 0x420a06
cmp dword [0x643700], 0
je 0x420a06
cmp dword [0x6436f0], 0
je 0x420a06
cmp dword [0x6436dc], 0
je 0x420a06
cmp dword [0x643740], 0
je 0x420a06
cmp dword [0x643780], 0
je 0x420a06
cmp dword [0x6439b0], 0
je 0x420a06
cmp dword [0x6449e4], 0
je 0x420a06
cmp dword [0x643744], 0
je 0x420a06
cmp dword [0x6439c8], 0
je 0x420a06
cmp dword [0x643704], 0
je 0x420a06
cmp dword [0x644a18], 0
je 0x420a06
cmp dword [0x5d2ad8], 0
je 0x420a06
cmp dword [0x6436fc], 0
je 0x420a06
cmp dword [0x64376c], 0
je 0x420a06
cmp dword [0x643768], 0
je 0x420a06
cmp dword [0x643734], 0
je 0x420a06
cmp dword [0x5d2ad4], 0
je 0x420a06
cmp dword [0x644a1c], 0
je 0x420a06
cmp dword [0x64379c], 0
je 0x420a06
cmp dword [0x643790], 0
je 0x420a06
cmp dword [0x643778], 0
je 0x420a06
cmp dword [0x6439ac], 0
je 0x420a06
cmp dword [0x643718], 0
je 0x420a06
cmp dword [0x5d2ae8], 0
je 0x420a06
cmp dword [0x6436ec], 0
je 0x420a06
cmp dword [0x643784], 0
je 0x420a06
cmp dword [0x6449d0], 0
je 0x420a06
cmp dword [0x64373c], 0
je 0x420a06
cmp dword [0x5d2ad0], 0
je 0x420a06
cmp dword [0x643714], 0
je 0x420a06
cmp dword [0x64374c], 0
je 0x420a06
cmp dword [0x5d2aec], 0
je 0x420a06
cmp dword [0x6436e0], 0
je 0x420a06
cmp dword [0x6449d8], 0
je 0x420a06
cmp dword [0x643770], 0
je 0x420a06
cmp dword [0x64370c], 0
je 0x420a06
cmp dword [0x643738], 0
je 0x420a06
cmp dword [0x6436f4], 0
je 0x420a06
cmp dword [0x6439bc], 0
je 0x420a06
cmp dword [0x643724], 0
je 0x420a06
cmp dword [0x643728], 0
je 0x420a06
cmp dword [0x5d2ae0], 0
je 0x420a06
cmp dword [0x6439c4], 0
je 0x420a06
cmp dword [0x643788], 0
je 0x420a06
cmp dword [0x643748], 0
je 0x420a06
cmp dword [0x6439a8], 0
je 0x420a06
cmp dword [0x6439b8], 0
je 0x420a06
cmp dword [0x6439c0], 0
je 0x420a06
test eax, eax
je 0x420a06
push 0x4a8
xorps xmm0, xmm0
mov dword [0x6439cc], 0
push 0
push 0x644a20
mov dword [0x64371c], 0
mov dword [0x5c0854], 0x643750
mov dword [0x6449dc], 0
mov dword [0x5c0860], 1
mov dword [0x6449e8], 0
mov dword [0x5c0850], 0x36
mov dword [0x5c085c], 1
mov dword [0x6436e8], 0
mov dword [0x5d2adc], 0
movdqu xmmword [0x643750], xmm0
movq qword [0x643760], xmm0
call fcn.00525d00
add esp, 0xc
mov dword [0x643764], 0x644a20
call fcn.00422050
cmp dword [0x64378c], 0
mov edx, dword [0x5c0854]
mov eax, dword [edx + 0x14]
mov dword [eax + 0x4a4], 0xbabeface
mov ecx, dword [edx + 0x14]
mov eax, dword [0x5d2adc]
mov dword [ecx + 0x18], eax
je 0x420270
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push str.Wait_for_sensors_arrival.
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
mov edx, dword [0x5c0854]
add esp, 8
mov eax, dword [edx + 0x14]
mov dword [eax + 0x494], 0x4217b0
mov ecx, dword [edx + 0x14]
call fcn.00420ec0
mov esi, eax
mov dword [0x5c0850], esi
test esi, esi
je 0x4202a0
mov dword [0x6449dc], str.Failed_to_create_client__please_exit_from_application_and_try_again.
jmp 0x420938
mov edx, dword [0x5c0854]
push 1
push 1
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx + 4]
mov dword [ecx + 0x288], eax
mov eax, dword [edx + 0x14]
push dword [eax + 4]
call dword [0x643790]
mov esi, eax
mov eax, dword [0x5c0854]
mov dword [0x5c0850], esi
test esi, esi
je 0x42037b
mov ecx, dword [eax + 0x14]
mov dword [0x6449dc], 0x58e348
lea eax, [ecx + 0x27c]
test eax, eax
je 0x420938
mov dword [ecx + 0x284], 1
mov ecx, esi
call fcn.004246a0
test eax, eax
je 0x420328
push esi
push str.LP_vcsSetParam_failed
push str._s___d_
lea eax, [ebp - 0x208]
push 0x100
push eax
call fcn.00424790
add esp, 0x14
jmp 0x420357
push 0x6b2
call fcn.00424660
push eax
push dword [0x5c0850]
lea eax, [ebp - 0x208]
push str.LP_vcsSetParam_failed
push str._s___d_____s__u_
push 0x100
push eax
call fcn.00424790
add esp, 0x1c
mov eax, dword [0x5c0854]
mov ecx, dword [eax + 0x14]
push dword [0x5c0850]
add ecx, 0x27c
lea edx, [ebp - 0x208]
call fcn.00423c30
jmp 0x420932
push dword [0x5c085c]
mov eax, dword [eax + 0x14]
push 2
push dword [eax + 4]
call dword [0x643790]
mov esi, eax
mov dword [0x5c0850], esi
test esi, esi
je 0x4203fe
mov eax, dword [0x5c0854]
mov dword [0x6449dc], 0x58e3b0
mov ecx, dword [eax + 0x14]
lea eax, [ecx + 0x27c]
test eax, eax
je 0x420938
mov dword [ecx + 0x284], 1
mov ecx, esi
call fcn.004246a0
test eax, eax
je 0x4203f4
push esi
push str.LP_vcsSetParam_failed
push str._s___d_
lea eax, [ebp - 0x208]
push 0x100
push eax
call fcn.00424790
add esp, 0x14
jmp 0x420357
push 0x6b9
jmp 0x42032d
mov esi, dword [0x5c0854]
push 0x208
call fcn.0051f61a
mov ecx, dword [esi + 0x14]
add esp, 4
mov dword [ecx + 0x14], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x4204ae
lea eax, [ecx + 0x27c]
mov dword [0x5c0850], 2
test eax, eax
je 0x420a10
mov dword [ecx + 0x284], 0
mov ecx, 2
call fcn.004246a0
test eax, eax
je 0x420479
call fcn.00423cc0
push eax
push 0x58d87c
lea eax, [ebp - 0x208]
push 0x100
push eax
call fcn.00424790
add esp, 0x10
jmp 0x420357
push 0x6c0
call fcn.00424660
mov ecx, dword [0x5c0850]
push eax
call fcn.00423cc0
push eax
push str._s____s__u_
lea eax, [ebp - 0x208]
push 0x100
push eax
call fcn.00424790
add esp, 0x18
jmp 0x420357
push 0x208
push 0
push eax
call fcn.00525d00
add esp, 0xc
call fcn.00423260
mov esi, eax
mov dword [0x5c0850], esi
test esi, esi
je 0x4204de
mov dword [0x6449dc], 0
jmp 0x420938
call fcn.00422180
mov esi, eax
mov dword [0x5c0850], esi
test esi, esi
je 0x4204fe
mov dword [0x6449dc], str.Failed_to_open_sensor.
jmp 0x420938
cmp dword [0x5c0858], 1
mov edi, dword [0x5c0854]
mov dword [0x6436e8], 1
je 0x420986
mov edx, edi
call fcn.00422e30
mov esi, eax
mov dword [0x5c0850], esi
cmp esi, 0x3eb
jne 0x4205c6
cmp dword [0x5c0858], 0
jne 0x42056c
cmp dword [0x64378c], 0
je 0x420a10
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push str.None_of_the_attached_sensors_has_flash.
jmp 0x42090b
cmp dword [0x64378c], 0
je 0x4205b7
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push str.Sensor_has_no_flash___switching_to_file_database.
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
mov dword [0x5c0858], 1
jmp 0x4209d1
test esi, esi
je 0x4208ce
cmp dword [0x643710], 0
je 0x4209d1
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x280]
cmp eax, 0x13
je 0x420938
cmp eax, 0x168
je 0x420938
cmp eax, 1
jne 0x42062a
cmp dword [0x64378c], 0
je 0x420938
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push str.Fingerprint_operation_canceled_due_to_GetPrint_request_from_another_application.
jmp 0x42090b
test eax, eax
je 0x42086d
cmp eax, 0x191
jne 0x4207a0
cmp dword [0x64378c], 0
je 0x4206de
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
mov ecx, dword [0x5c0850]
add esp, 8
call fcn.00423cc0
push eax
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
cmp dword [0x64378c], 0
je 0x4206de
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push str.It_will_be_reformatted_and_all_your_data_will_be_lost._Continue___y_n_
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
lea ecx, [ebp - 0x60c]
call fcn.004245a0
cmp dword [ebp - 0x60c], 0x79
jne 0x4209d1
mov ecx, dword [edi + 0x14]
lea eax, [ecx + 0x28c]
push eax
push dword [ecx + 0x288]
call dword [0x643700]
mov esi, eax
mov dword [0x5c0850], esi
test esi, esi
je 0x4209d1
mov ecx, dword [edi + 0x14]
lea eax, [ecx + 0x27c]
test eax, eax
je 0x420938
mov dword [ecx + 0x284], 1
mov ecx, esi
call fcn.004246a0
test eax, eax
je 0x420769
push esi
push str.vcsDatabaseFormatDatabase_failed
push str._s___d_
lea eax, [ebp - 0x208]
push 0x100
push eax
call fcn.00424790
mov ecx, dword [edi + 0x14]
add esp, 0x14
jmp 0x42035f
push 0x6ee
call fcn.00424660
push eax
push dword [0x5c0850]
lea eax, [ebp - 0x208]
push str.vcsDatabaseFormatDatabase_failed
push str._s___d_____s__u_
push 0x100
push eax
call fcn.00424790
mov ecx, dword [edi + 0x14]
add esp, 0x1c
jmp 0x42035f
xor ecx, ecx
xor eax, eax
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4207ca
test dx, dx
je 0x4207c6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4207ca
add eax, 4
add ecx, 4
test dx, dx
jne 0x4207a4
xor eax, eax
jmp 0x4207cf
sbb eax, eax
or eax, 1
test eax, eax
je 0x42081b
cmp dword [0x64378c], 0
je 0x42081b
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
mov esi, dword [edi + 0x14]
sub esp, 0x218
mov edi, esp
add esi, 0x27c
mov ecx, 0x86
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x608]
call fcn.00424530
cmp dword [0x64378c], 0
je 0x420932
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
lea eax, [ebp - 0x608]
push eax
jmp 0x42090b
xor ecx, ecx
xor eax, eax
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420897
test dx, dx
je 0x420893
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420897
add eax, 4
add ecx, 4
test dx, dx
jne 0x420871
xor eax, eax
jmp 0x42089c
sbb eax, eax
or eax, 1
test eax, eax
je 0x4209d1
cmp dword [0x64378c], 0
je 0x4209d1
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0
jmp 0x4209aa
mov ecx, edi
mov dword [0x5c0858], 0
call fcn.00421750
mov dword [0x6436e4], eax
test eax, eax
jne 0x420945
cmp dword [0x64378c], eax
je 0x420932
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push str.No_sensors_found.
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
mov esi, dword [0x5c0850]
test esi, esi
je 0x4209fd
jmp 0x420a10
cmp dword [0x64378c], 0
je 0x4209d1
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push dword [0x6436e4]
push str.Database_will_be_stored_on_sensor____s.
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 0xc
jmp 0x4209bb
cmp dword [0x64378c], 0
je 0x4209d1
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push str.Using_file_database.
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
push 0x58d738
call fcn.0051fe20
add eax, 0x20
push eax
call fcn.004246d0
add esp, 8
call fcn.0041ede0
mov esi, eax
mov dword [0x5c0850], esi
test esi, esi
jne 0x420a10
mov eax, dword [edi + 0x14]
push 0x104
add eax, 0x28c
push 0x6437a0
push eax
call fcn.005256b0
add esp, 0xc
mov byte [0x5d2a8b], 1
jmp 0x420a1b
mov dword [0x5c0850], 0x36
call fcn.0041ee30
mov esi, dword [0x5c0850]
mov ecx, dword [ebp - 4]
xor eax, eax
test esi, esi
pop edi
sete al
xor ecx, ebp
pop esi
call fcn.0051ece9
mov esp, ebp
pop ebp
ret