Function at 0x61e38ca4
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, edx
sub esp, 0x3c
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x20], eax
mov eax, edx
call sym._sqlite3Strlen30
test byte [ebp - 0x20], 0x40
mov ebx, eax
jne 0x61e38cd6
cmp dword [0x61e97a6c], 0
je 0x61e390ac
cmp ebx, 4
jle 0x61e390ac
mov dword [esp + 8], 5
mov dword [esp + 4], str.file:
mov dword [esp], esi
call sym._memcmp
test eax, eax
jne 0x61e390ac
lea eax, [ebx + 2]
lea ecx, [esi + ebx]
mov edi, esi
cdq
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
cmp byte [edi], 0x26
sete cl
xor ebx, ebx
add eax, ecx
adc edx, ebx
inc edi
cmp edi, dword [ebp - 0x1c]
jne 0x61e38d0b
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.sqlite3.dll_sqlite3_malloc64
test eax, eax
mov dword [ebp - 0x1c], eax
jne 0x61e38d3c
mov eax, 7
jmp 0x61e3913f
mov eax, dword [ebp - 0x20]
mov ebx, 5
or eax, 0x40
cmp byte [esi + 5], 0x2f
mov dword [ebp - 0x24], eax
je 0x61e38d5c
mov dword [ebp - 0x20], 0
jmp 0x61e38e50
cmp byte [esi + 6], 0x2f
jne 0x61e38d50
mov ebx, 7
mov al, byte [esi + ebx]
test al, al
je 0x61e38d75
cmp al, 0x2f
je 0x61e38d75
inc ebx
jmp 0x61e38d67
cmp ebx, 7
je 0x61e38d50
cmp ebx, 0x10
lea edi, [esi + 7]
jne 0x61e38d9e
mov dword [esp + 8], 9
mov dword [esp + 4], edi
mov dword [esp], str.localhost
call sym._memcmp
test eax, eax
je 0x61e38d50
sub ebx, 7
mov dword [esp + 8], edi
mov dword [esp], str.invalid_uri_authority:__.s
mov dword [esp + 4], ebx
jmp 0x61e38fce
cmp ecx, 1
jne 0x61e38e5f
cmp al, 0x3d
jne 0x61e38e57
mov dl, byte [esi + ebx]
test dl, dl
je 0x61e38f06
cmp dl, 0x23
je 0x61e38f06
lea eax, [ebx + 1]
cmp dl, 0x25
mov dword [ebp - 0x28], eax
jne 0x61e38e70
movzx edi, byte [esi + ebx + 1]
test byte [edi + 0x61ea9360], 8
mov eax, edi
je 0x61e38e70
movzx edi, byte [esi + ebx + 2]
test byte [edi + 0x61ea9360], 8
je 0x61e38e70
movsx eax, al
call sym._sqlite3HexToInt
movzx eax, al
shl eax, 4
mov edi, eax
lea eax, [ebx + 3]
mov dword [ebp - 0x28], eax
movsx eax, byte [esi + ebx + 2]
call sym._sqlite3HexToInt
movzx edx, al
add edx, edi
jne 0x61e38eef
mov ebx, dword [ebp - 0x28]
mov al, byte [esi + ebx]
cmp al, 0x23
je 0x61e38dc6
test al, al
je 0x61e38dc6
test ecx, ecx
jne 0x61e38db5
cmp al, 0x3f
jne 0x61e38db5
xor ecx, ecx
jmp 0x61e38dc6
cmp al, 0x26
je 0x61e38dc6
cmp ecx, 2
je 0x61e38e67
inc ebx
jmp 0x61e38e35
cmp al, 0x26
jne 0x61e38e64
jmp 0x61e38dc6
cmp ecx, 1
jne 0x61e38ec1
cmp dl, 0x26
je 0x61e38e7f
cmp dl, 0x3d
jne 0x61e38ec1
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
cmp byte [edi + eax - 1], 0
jne 0x61e38eb0
mov ebx, dword [ebp - 0x28]
mov al, byte [esi + ebx]
test al, al
je 0x61e38dc6
cmp al, 0x23
je 0x61e38dc6
cmp byte [esi + ebx - 1], 0x26
je 0x61e38dc6
inc ebx
jmp 0x61e38e8f
cmp dl, 0x26
jne 0x61e38ee1
mov edi, dword [ebp - 0x1c]
inc dword [ebp - 0x20]
mov byte [edi + eax], 0
jmp 0x61e38eed
test ecx, ecx
jne 0x61e38eca
cmp dl, 0x3f
je 0x61e38ee8
cmp ecx, 2
jne 0x61e38eef
cmp dl, 0x26
mov eax, 1
cmove ecx, eax
mov al, 0
cmove edx, eax
jmp 0x61e38eef
mov ecx, 2
jmp 0x61e38eed
mov ecx, 1
xor edx, edx
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x28]
mov byte [eax + edi], dl
mov eax, edi
inc eax
mov dword [ebp - 0x20], eax
jmp 0x61e38dc6
dec ecx
jne 0x61e38f19
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov byte [eax + ecx], 0
mov eax, ecx
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov byte [eax + esi], 0
mov byte [eax + esi + 1], 0
call sym._sqlite3Strlen30
mov esi, dword [ebp - 0x1c]
jmp 0x61e3901e
cmp ebx, 5
je 0x61e3902c
cmp ebx, 4
jne 0x61e3901b
mov dword [esp + 8], 4
mov dword [esp + 4], edx
mov dword [esp], str.mode
call sym._memcmp
test eax, eax
jne 0x61e3901b
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], 0x87
mov edi, str.access
mov ebx, 0x61e97220
and eax, 0x87
mov dword [ebp - 0x30], eax
mov edx, dword [ebx]
test edx, edx
je 0x61e38fbf
mov eax, edx
call sym._sqlite3Strlen30
cmp dword [ebp - 0x20], eax
jne 0x61e39065
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._memcmp
test eax, eax
jne 0x61e39065
mov eax, dword [ebx + 4]
test eax, eax
jne 0x61e3906d
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], str.no_such__s_mode:__s
call sym.sqlite3.dll_sqlite3_mprintf
jmp 0x61e39111
mov eax, edx
call sym._sqlite3Strlen30
lea esi, [edx + eax + 1]
mov ebx, eax
mov eax, esi
call sym._sqlite3Strlen30
cmp ebx, 3
mov dword [ebp - 0x20], eax
jne 0x61e38f35
mov dword [esp + 8], 3
mov dword [esp + 4], edx
mov dword [esp], 0x61e9a152
call sym._memcmp
test eax, eax
mov eax, dword [ebp - 0x2c]
cmove eax, esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
lea edx, [esi + eax + 1]
cmp byte [edx], 0
jne 0x61e38fd8
jmp 0x61e390e8
mov dword [esp + 8], 5
mov dword [esp + 4], edx
mov dword [esp], str.cache
call sym._memcmp
test eax, eax
jne 0x61e3901b
mov dword [ebp - 0x30], 0x60000
mov dword [ebp - 0x28], 0x60000
mov edi, str.cache
mov ebx, 0x61e97248
jmp 0x61e38f83
add ebx, 8
jmp 0x61e38f83
mov ecx, eax
and cl, 0x7f
cmp ecx, dword [ebp - 0x30]
jle 0x61e3909a
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov ebx, 3
mov dword [esp], str._s_mode_not_allowed:__s
call sym.sqlite3.dll_sqlite3_mprintf
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
jmp 0x61e3911b
mov edi, dword [ebp - 0x28]
not edi
and edi, dword [ebp - 0x24]
or eax, edi
mov dword [ebp - 0x24], eax
jmp 0x61e3901b
lea eax, [ebx + 2]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call sym.sqlite3.dll_sqlite3_malloc64
test eax, eax
mov dword [ebp - 0x1c], eax
je 0x61e38d32
test ebx, ebx
je 0x61e390d3
mov edi, eax
mov ecx, ebx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x1c]
mov byte [eax + ebx], 0
mov byte [eax + ebx + 1], 0
mov eax, dword [ebp - 0x20]
and eax, 0xffffffbf
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_vfs_find
mov edx, dword [ebp + 8]
test eax, eax
mov dword [edx], eax
jne 0x61e3912d
mov eax, dword [ebp - 0x2c]
mov dword [esp], str.no_such_vfs:__s
mov dword [esp + 4], eax
call sym.sqlite3.dll_sqlite3_mprintf
mov esi, dword [ebp + 0x10]
mov ebx, 1
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_free
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov dword [eax], esi
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, ebx
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret