Function at 0x56f0d4
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x2c]
and dword [esp + 8], 0
push ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [eax]
push ebp
push esi
push edi
push ebx
mov dword [esp + 0x18], eax
call fcn.00578223
test byte [esp + 0x18], 0x40
mov esi, eax
pop ecx
jne 0x56f10b
cmp byte [0x6631ae], 0
je 0x56f493
cmp esi, 5
jl 0x56f493
push 5
push str.file:
push ebx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x56f493
and dword [esp + 0x10], eax
lea eax, [esi + 8]
or dword [esp + 0x14], 0x40
xor ecx, ecx
cdq
cmp byte [ebx + ecx], 0x26
jne 0x56f148
xor edi, edi
inc edi
xor ebp, ebp
jmp 0x56f159
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
add eax, edi
adc edx, ebp
inc ecx
cmp ecx, esi
jl 0x56f13b
push edx
push eax
call fcn.005319be
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x56f4a6
push 4
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add edi, 4
cmp byte [ebx + 5], 0x2f
push 5
pop esi
jne 0x56f1ea
cmp byte [ebx + 6], 0x2f
jne 0x56f1ea
lea ebp, [ebx + 7]
mov al, byte [ebp]
push 7
pop esi
test al, al
je 0x56f1ea
cmp al, 0x2f
je 0x56f1ad
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x56f1a1
cmp esi, 7
je 0x56f1ea
cmp esi, 0x10
jne 0x56f1cb
push 9
push ebp
push str.localhost
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x56f1ea
push ebp
lea eax, [esi - 7]
push eax
push str.invalid_uri_authority:__.s
mov dword [esp + 0x24], 1
call fcn.00531883
add esp, 0xc
jmp 0x56f50e
mov cl, byte [esi + ebx]
xor ebp, ebp
test cl, cl
je 0x56f328
cmp cl, 0x23
je 0x56f318
inc esi
cmp cl, 0x25
jne 0x56f29f
mov dl, byte [esi + ebx]
movzx eax, dl
test byte [eax + 0x657150], 8
je 0x56f29f
movzx eax, byte [esi + ebx + 1]
test byte [eax + 0x657150], 8
je 0x56f29f
mov cl, byte [esi + ebx + 1]
mov al, dl
sar al, 6
add esi, 2
and al, 1
movzx eax, al
imul eax, eax, 7
sub dl, al
mov al, cl
sar al, 6
and edx, 0xf
and al, 1
shl edx, 4
movzx eax, al
imul eax, eax, 7
sub cl, al
and ecx, 0xf
add ecx, edx
jne 0x56f301
jmp 0x56f296
cmp al, 0x23
je 0x56f30d
test ebp, ebp
jne 0x56f277
cmp al, 0x3f
je 0x56f30d
cmp ebp, 1
jne 0x56f28c
cmp al, 0x3d
je 0x56f30d
cmp al, 0x26
je 0x56f30d
cmp ebp, 2
jne 0x56f295
cmp al, 0x26
je 0x56f30d
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x56f263
jmp 0x56f30d
cmp ebp, 1
jne 0x56f2e9
cmp cl, 0x26
je 0x56f2ae
cmp cl, 0x3d
jne 0x56f301
mov eax, dword [esp + 0x10]
cmp byte [edi + eax - 1], 0
je 0x56f2d9
cmp cl, 0x26
jne 0x56f2e2
mov ecx, eax
mov byte [edi + ecx], 0
inc ecx
mov dword [esp + 0x10], ecx
mov eax, ecx
jmp 0x56f2e5
cmp al, 0x23
je 0x56f30d
cmp byte [esi + ebx - 1], 0x26
je 0x56f30d
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x56f2cd
jmp 0x56f30d
push 2
pop ebp
xor cl, cl
jmp 0x56f305
test ebp, ebp
jne 0x56f2f2
cmp cl, 0x3f
je 0x56f2fc
cmp ebp, 2
jne 0x56f301
cmp cl, 0x26
jne 0x56f301
xor ebp, ebp
xor cl, cl
inc ebp
mov eax, dword [esp + 0x10]
mov byte [edi + eax], cl
inc eax
mov dword [esp + 0x10], eax
mov cl, byte [esi + ebx]
test cl, cl
jne 0x56f1f7
mov eax, dword [esp + 0x10]
cmp ebp, 1
jne 0x56f32c
mov byte [edi + eax], 0
inc eax
jmp 0x56f32c
mov eax, dword [esp + 0x10]
push 4
add eax, edi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push edi
call fcn.00578223
add esp, 0x10
lea esi, [eax + 1]
add esi, edi
jmp 0x56f471
push esi
call fcn.00578223
mov ebp, eax
lea ebx, [ebp + 1]
add ebx, esi
push ebx
call fcn.00578223
mov dword [esp + 0x30], eax
pop ecx
pop ecx
cmp ebp, 3
jne 0x56f389
push ebp
push esi
push 0x65f1c4
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x56f46a
mov dword [esp + 0x34], ebx
jmp 0x56f46a
cmp ebp, 5
jne 0x56f3b8
push ebp
push esi
mov ebp, str.cache
push ebp
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x56f46a
mov ecx, 0x60000
mov dword [esp + 0x20], ebp
mov esi, ecx
mov eax, 0x664c50
jmp 0x56f3f2
cmp ebp, 4
jne 0x56f46a
push ebp
push esi
push str.mode
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x56f46a
mov ecx, dword [esp + 0x14]
mov edx, 0x87
mov esi, edx
mov dword [esp + 0x20], str.access
mov eax, 0x664c68
and ecx, edx
mov ebp, dword [eax]
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x10], eax
jmp 0x56f42a
push ebp
call fcn.00578223
pop ecx
mov ecx, dword [esp + 0x28]
cmp ecx, eax
jne 0x56f41e
push ecx
push ebp
push ebx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x56f441
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
inc ecx
mov ebp, dword [eax + ecx*8]
mov dword [esp + 0x1c], ecx
test ebp, ebp
jne 0x56f400
push ebx
push dword [esp + 0x24]
push str.no_such__s_mode:__s
jmp 0x56f1d5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [eax + ecx*8 + 4]
test ecx, ecx
je 0x56f432
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [esp + 0x24]
jg 0x56f47c
not esi
and esi, dword [esp + 0x14]
or esi, ecx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x28]
inc esi
add esi, ebx
cmp byte [esi], 0
jne 0x56f34b
jmp 0x56f4e2
push ebx
push dword [esp + 0x24]
mov dword [esp + 0x20], 3
push str._s_mode_not_allowed:__s
jmp 0x56f1dd
lea eax, [esi + 8]
cdq
push edx
push eax
call fcn.005319be
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x56f4ae
push 7
pop eax
jmp 0x56f531
push 4
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add edi, 4
test esi, esi
je 0x56f4cd
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 4
lea eax, [edi + esi]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
and dword [esp + 0x14], 0xffffffbf
mov esi, dword [esp + 0x34]
push esi
call fcn.00525c08
pop ecx
mov ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
test ecx, ecx
jne 0x56f51d
push esi
push str.no_such_vfs:__s
mov dword [esp + 0x20], 1
call fcn.00531883
pop ecx
pop ecx
mov ecx, dword [esp + 0x48]
push edi
mov dword [ecx], eax
call fcn.005320b1
pop ecx
xor edi, edi
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov dword [ecx], eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
mov dword [ecx], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret