Function at 0x61c2d743
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [ebp - 0x30], eax
mov esi, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x1c], eax
mov eax, edx
call sym._sqlite3Strlen30
mov edx, eax
test byte [ebp - 0x1c], 0x40
jne 0x61c2d775
cmp dword [0x61c7500c], 0
je 0x61c2db40
cmp edx, 4
jle 0x61c2db40
mov dword [esp + 8], 5
mov dword [esp + 4], str.file:
mov dword [esp], esi
mov dword [ebp - 0x3c], edx
call sym._memcmp
test eax, eax
mov edx, dword [ebp - 0x3c]
jne 0x61c2db40
lea ecx, [edx + 2]
mov ebx, ecx
sar ebx, 0x1f
mov dword [ebp - 0x2c], edx
xor edx, edx
cmp byte [esi + eax], 0x26
sete dl
mov edi, edx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], 0
add ecx, dword [ebp - 0x28]
adc ebx, dword [ebp - 0x24]
inc eax
cmp eax, dword [ebp - 0x2c]
jne 0x61c2d7af
mov dword [esp], ecx
mov dword [esp + 4], ebx
call sym.sqlite3.dll_sqlite3_malloc64
mov ebx, eax
mov eax, 7
test ebx, ebx
je 0x61c2dbcc
mov ecx, dword [ebp - 0x1c]
or ecx, 0x40
mov dword [ebp - 0x28], ecx
cmp byte [esi + 5], 0x2f
je 0x61c2d80b
mov edi, 5
mov dword [ebp - 0x1c], 0
jmp 0x61c2d990
mov edi, 5
cmp byte [esi + 6], 0x2f
jne 0x61c2d7ff
mov di, 7
jmp 0x61c2d81d
inc edi
mov al, byte [esi + edi]
cmp al, 0x2f
je 0x61c2d828
test al, al
jne 0x61c2d81c
cmp edi, 7
je 0x61c2d7ff
cmp edi, 0x10
jne 0x61c2d851
lea eax, [esi + 7]
mov dword [esp + 8], 9
mov dword [esp + 4], eax
mov dword [esp], str.localhost
call sym._memcmp
test eax, eax
je 0x61c2d7ff
add esi, 7
mov dword [esp + 8], esi
sub edi, 7
mov dword [esp + 4], edi
mov dword [esp], str.invalid_uri_authority:__.s
jmp 0x61c2dae2
inc edi
cmp al, 0x25
jne 0x61c2d91d
mov cl, byte [esi + edi]
mov byte [ebp - 0x2c], cl
movzx ecx, cl
test byte [ecx + 0x61c7c3cc], 8
je 0x61c2d91d
movzx ecx, byte [esi + edi + 1]
test byte [ecx + 0x61c7c3cc], 8
je 0x61c2d91d
lea eax, [edi + 1]
mov dword [ebp - 0x34], eax
movsx eax, byte [ebp - 0x2c]
mov dword [ebp - 0x3c], edx
call sym._sqlite3HexToInt
movzx eax, al
shl eax, 4
mov dword [ebp - 0x2c], eax
add edi, 2
mov ecx, dword [ebp - 0x34]
movsx eax, byte [esi + ecx]
call sym._sqlite3HexToInt
movzx eax, al
mov ecx, dword [ebp - 0x2c]
add ecx, eax
mov al, cl
test ecx, ecx
mov edx, dword [ebp - 0x3c]
jne 0x61c2d984
jmp 0x61c2d8de
inc edi
mov al, byte [esi + edi]
test al, al
je 0x61c2d992
cmp al, 0x23
je 0x61c2d992
test edx, edx
jne 0x61c2d8fd
cmp al, 0x3f
je 0x61c2d990
cmp edx, 1
jne 0x61c2d912
cmp al, 0x26
je 0x61c2d992
cmp al, 0x3d
je 0x61c2d992
cmp edx, 2
jne 0x61c2d8dd
cmp al, 0x26
jne 0x61c2d8dd
jmp 0x61c2d992
cmp edx, 1
jne 0x61c2d961
cmp al, 0x26
sete cl
cmp al, 0x3d
je 0x61c2d92f
test cl, cl
je 0x61c2d961
mov eax, dword [ebp - 0x1c]
cmp byte [ebx + eax - 1], 0
jne 0x61c2d950
jmp 0x61c2d93c
inc edi
mov al, byte [esi + edi]
cmp al, 0x23
je 0x61c2d992
test al, al
je 0x61c2d992
cmp byte [esi + edi - 1], 0x26
jne 0x61c2d93b
jmp 0x61c2d992
test cl, cl
je 0x61c2d976
mov ecx, dword [ebp - 0x1c]
mov byte [ebx + ecx], 0
inc ecx
mov dword [ebp - 0x1c], ecx
jmp 0x61c2d982
cmp al, 0x3f
jne 0x61c2d969
test edx, edx
je 0x61c2d97d
cmp al, 0x26
jne 0x61c2d984
cmp edx, 2
jne 0x61c2d984
mov dl, 1
jmp 0x61c2d982
mov edx, 2
jmp 0x61c2d982
mov edx, 1
xor eax, eax
mov ecx, dword [ebp - 0x1c]
mov byte [ebx + ecx], al
inc ecx
mov dword [ebp - 0x1c], ecx
jmp 0x61c2d992
xor edx, edx
mov al, byte [esi + edi]
test al, al
je 0x61c2d9a1
cmp al, 0x23
jne 0x61c2d86b
dec edx
jne 0x61c2d9af
mov eax, dword [ebp - 0x1c]
mov byte [ebx + eax], 0
inc eax
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
mov byte [ebx + edx], 0
mov byte [ebx + edx + 1], 0
mov eax, ebx
call sym._sqlite3Strlen30
lea edx, [ebx + eax + 1]
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x1c], ebx
mov ebx, edx
jmp 0x61c2db32
mov eax, ebx
call sym._sqlite3Strlen30
mov edx, eax
lea esi, [ebx + eax + 1]
mov eax, esi
mov dword [ebp - 0x3c], edx
call sym._sqlite3Strlen30
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x3c]
cmp edx, 3
jne 0x61c2da1a
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x61c7892e
call sym._memcmp
test eax, eax
je 0x61c2db29
jmp 0x61c2db2b
cmp edx, 5
jne 0x61c2da44
mov dword [esp + 8], 5
mov dword [esp + 4], ebx
mov dword [esp], str.cache
call sym._memcmp
test eax, eax
je 0x61c2dbd4
jmp 0x61c2db2b
cmp edx, 4
jne 0x61c2db2b
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [esp], str.mode
call sym._memcmp
test eax, eax
jne 0x61c2db2b
mov ecx, dword [ebp - 0x28]
and ecx, 0x87
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], 0x87
mov ecx, str.access
mov ebx, 0x61c75114
jmp 0x61c2daca
mov eax, edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], ecx
call sym._sqlite3Strlen30
cmp dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
jne 0x61c2dac7
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], esi
call sym._memcmp
test eax, eax
mov ecx, dword [ebp - 0x40]
jne 0x61c2dac7
mov eax, dword [ebx + 4]
test eax, eax
jne 0x61c2daec
jmp 0x61c2dad0
add ebx, 8
mov edx, dword [ebx]
test edx, edx
jne 0x61c2da8c
mov ebx, dword [ebp - 0x1c]
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], str.no_such__s_mode:__s
call sym.sqlite3.dll_sqlite3_mprintf
jmp 0x61c2dba5
mov edx, eax
and dl, 0x7f
cmp edx, dword [ebp - 0x30]
jle 0x61c2db1c
mov ebx, dword [ebp - 0x1c]
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], str._s_mode_not_allowed:__s
call sym.sqlite3.dll_sqlite3_mprintf
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, 3
jmp 0x61c2dbaf
mov edx, dword [ebp - 0x34]
not edx
and dword [ebp - 0x28], edx
or dword [ebp - 0x28], eax
jmp 0x61c2db2b
mov edi, esi
mov eax, dword [ebp - 0x2c]
lea ebx, [esi + eax + 1]
cmp byte [ebx], 0
jne 0x61c2d9d3
mov ebx, dword [ebp - 0x1c]
jmp 0x61c2db80
lea eax, [edx + 2]
mov dword [esp], eax
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 4], ecx
mov dword [ebp - 0x3c], edx
call sym.sqlite3.dll_sqlite3_malloc64
mov ebx, eax
mov eax, 7
test ebx, ebx
mov edx, dword [ebp - 0x3c]
je 0x61c2dbcc
mov edi, ebx
mov ecx, edx
rep movsb byte es:[edi], byte [esi]
mov byte [ebx + edx], 0
mov byte [ebx + edx + 1], 0
mov eax, dword [ebp - 0x1c]
and eax, 0xffffffbf
mov dword [ebp - 0x28], eax
mov edi, dword [ebp - 0x30]
mov dword [esp], edi
call sym.sqlite3.dll_sqlite3_vfs_find
mov edx, eax
mov eax, dword [ebp + 8]
mov dword [eax], edx
xor eax, eax
test edx, edx
jne 0x61c2dbbf
mov dword [esp + 4], edi
mov dword [esp], str.no_such_vfs:__s
call sym.sqlite3.dll_sqlite3_mprintf
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, 1
mov dword [esp], ebx
mov dword [ebp - 0x3c], eax
call sym.sqlite3.dll_sqlite3_free
xor ebx, ebx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
mov dword [ecx], edx
mov edx, dword [ebp + 0xc]
mov dword [edx], ebx
add esp, 0x4c
pop ebx
pop esi
pop edi
leave
ret
mov dword [ebp - 0x34], 0x60000
mov ecx, str.cache
mov ebx, 0x61c7513c
mov dword [ebp - 0x30], 0x60000
jmp 0x61c2daca