Function at 0x466b60
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov edi, eax
mov eax, dword [esp + 0x38]
mov ebx, dword [eax]
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], edx
cmp edi, ecx
jne 0x466b85
xor esi, esi
jmp 0x466ba0
mov eax, edi
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x466b90
sub eax, esi
and eax, 0x3fffffff
mov esi, eax
test bl, 0x40
jne 0x466bb1
cmp dword [0x4c90bc], ecx
je 0x467015
cmp esi, 5
jl 0x467015
cmp dword [edi], 0x656c6966
jne 0x467015
cmp byte [edi + 4], 0x3a
jne 0x467015
or dword [esp + 0x14], 0x40
lea eax, [esi + 2]
cdq
mov ebx, eax
xor eax, eax
cmp esi, ecx
mov dword [esp + 0x18], ecx
mov ebp, edx
jle 0x466c01
cmp byte [eax + edi], 0x26
jne 0x466bf4
mov ecx, 1
jmp 0x466bf6
xor ecx, ecx
xor edx, edx
add ebx, ecx
adc ebp, edx
inc eax
cmp eax, esi
jl 0x466be7
call fcn.0045fca0
test eax, eax
jne 0x466c1c
push ebp
push ebx
call fcn.00429b10
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x466c29
pop edi
pop esi
pop ebp
mov eax, 7
pop ebx
add esp, 0x24
ret
mov cl, 0x2f
mov esi, 5
cmp byte [edi + 5], cl
jne 0x466ca2
cmp byte [edi + 6], cl
jne 0x466ca2
mov al, byte [edi + 7]
lea ebx, [edi + 7]
mov esi, 7
test al, al
je 0x466ca2
lea esp, [esp]
cmp al, cl
je 0x466c5d
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x466c50
cmp esi, 7
je 0x466ca2
cmp esi, 0x10
jne 0x466c8b
lea eax, [esi - 7]
mov ecx, ebx
mov edx, str.localhost
mov ebp, dword [edx]
cmp ebp, dword [ecx]
jne 0x466c8b
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x466c71
mov al, byte [ecx]
cmp al, byte [edx]
je 0x466ca2
push ebx
add esi, 0xfffffff9
push esi
push str.invalid_uri_authority:__.s
call fcn.0043d950
add esp, 0xc
jmp 0x467084
mov al, byte [esi + edi]
xor ebp, ebp
test al, al
je 0x466def
nop
mov edx, dword [esp + 0x18]
cmp al, 0x23
je 0x466ddd
inc esi
cmp al, 0x25
jne 0x466d61
mov cl, byte [esi + edi]
movzx ebx, cl
test byte [ebx + 0x4b7778], 8
je 0x466d61
movzx ebx, byte [esi + edi + 1]
test byte [ebx + 0x4b7778], 8
je 0x466d61
movsx edx, byte [esi + edi + 1]
movsx ecx, cl
mov eax, ecx
sar eax, 6
and al, 1
mov bl, 7
imul bl
inc esi
sub cl, al
mov eax, edx
sar eax, 6
and al, 1
imul bl
sub dl, al
and ecx, 0xf
shl ecx, 4
inc esi
and edx, 0xf
add ecx, edx
test ecx, ecx
jne 0x466d59
mov al, byte [esi + edi]
test al, al
je 0x466dce
cmp al, 0x23
je 0x466dce
test ebp, ebp
jne 0x466d32
cmp al, 0x3f
jmp 0x466d48
cmp ebp, 1
jne 0x466d41
cmp al, 0x3d
je 0x466dce
jmp 0x466d46
cmp ebp, 2
jne 0x466d4e
cmp al, 0x26
je 0x466dce
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x466d22
jmp 0x466dce
mov edx, dword [esp + 0x18]
mov al, cl
jmp 0x466dc2
cmp ebp, 1
jne 0x466da8
cmp al, 0x26
je 0x466d6e
cmp al, 0x3d
jne 0x466dc2
mov ecx, dword [esp + 0x10]
cmp byte [ecx + edx - 1], 0
jne 0x466d96
mov al, byte [esi + edi]
test al, al
je 0x466dce
cmp al, 0x23
je 0x466dce
cmp byte [esi + edi - 1], 0x26
je 0x466dce
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x466d80
jmp 0x466dce
cmp al, 0x26
jne 0x466da1
mov byte [ecx + edx], 0
inc edx
jmp 0x466dc0
mov ebp, 2
jmp 0x466dc0
test ebp, ebp
jne 0x466db2
cmp al, 0x3f
je 0x466dbb
jmp 0x466dc2
cmp ebp, 2
jne 0x466dc2
cmp al, 0x26
jne 0x466dc2
mov ebp, 1
xor al, al
mov ecx, dword [esp + 0x10]
mov byte [ecx + edx], al
inc edx
mov dword [esp + 0x18], edx
mov al, byte [esi + edi]
test al, al
jne 0x466cb0
mov edx, dword [esp + 0x18]
cmp ebp, 1
jne 0x466def
mov eax, dword [esp + 0x10]
mov byte [eax + edx], 0
inc edx
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov byte [esi + eax], 0
mov byte [esi + eax + 1], 0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x466e05
sub eax, edx
and eax, 0x3fffffff
cmp byte [eax + esi + 1], 0
lea ecx, [eax + esi + 1]
je 0x46705b
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x466e27
sub eax, esi
and eax, 0x3fffffff
mov esi, eax
lea eax, [esi + ecx + 1]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x466e4b
xor ebx, ebx
mov dword [esp + 0x18], ebx
jmp 0x466e64
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x466e50
sub eax, edi
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp + 0x18], eax
cmp esi, 3
jne 0x466e93
cmp byte [ecx], 0x76
jne 0x466fe2
cmp byte [ecx + 1], 0x66
jne 0x466fe2
cmp byte [ecx + 2], 0x73
jne 0x466fe2
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
jmp 0x466fe2
cmp esi, 5
jne 0x466ec6
cmp dword [ecx], 0x68636163
jne 0x466fe2
cmp byte [ecx + 4], 0x65
jne 0x466fe2
mov eax, 0x60000
mov dword [esp + 0x28], eax
mov edi, 0x4ca088
mov dword [esp + 0x20], str.cache
jmp 0x466ef9
cmp esi, 4
jne 0x466fe2
cmp dword [ecx], 0x65646f6d
jne 0x466fe2
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], 0x87
mov edi, 0x4ca0a0
and eax, 0x87
mov dword [esp + 0x20], str.access
mov ecx, dword [edi]
xor ebp, ebp
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x466f9c
mov eax, ecx
lea esi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x466f10
sub eax, esi
and eax, 0x3fffffff
cmp ebx, eax
jne 0x466f8f
mov edx, dword [esp + 0x1c]
mov esi, ebx
cmp ebx, 4
jb 0x466f44
lea ecx, [ecx]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x466f48
sub esi, 4
add ecx, 4
add edx, 4
cmp esi, 4
jae 0x466f30
test esi, esi
je 0x466fbc
movzx ebx, byte [ecx]
movzx eax, byte [edx]
sub eax, ebx
jne 0x466f83
cmp esi, 1
jbe 0x466fb8
movzx eax, byte [edx + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x466f83
cmp esi, 2
jbe 0x466fb8
movzx eax, byte [edx + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x466f83
cmp esi, 3
jbe 0x466fb8
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov ebx, dword [esp + 0x18]
sar eax, 0x1f
or eax, 1
je 0x466fbc
mov ecx, dword [edi + ebp*8 + 8]
inc ebp
test ecx, ecx
jne 0x466f09
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
push str.no_such__s_mode:__s
call fcn.0043d950
add esp, 0xc
jmp 0x467084
mov ebx, dword [esp + 0x18]
mov eax, dword [edi + ebp*8 + 4]
test eax, eax
je 0x466f9c
mov edx, eax
and edx, 0xffffff7f
cmp edx, dword [esp + 0x24]
jg 0x466ff7
mov ecx, dword [esp + 0x28]
not ecx
and ecx, dword [esp + 0x14]
or ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x1c]
cmp byte [ebx + eax + 1], 0
lea ecx, [ebx + eax + 1]
jne 0x466e22
jmp 0x46705b
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
push str._s_mode_not_allowed:__s
call fcn.0043d950
add esp, 0xc
mov esi, 3
jmp 0x467089
call fcn.0045fca0
test eax, eax
jne 0x466c1c
lea eax, [esi + 2]
cdq
push edx
push eax
call fcn.00429b10
mov ebx, eax
add esp, 8
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x466c1c
test esi, esi
je 0x46704d
push esi
push edi
push ebx
call fcn.00495400
add esp, 0xc
and dword [esp + 0x14], 0xffffffbf
mov byte [ebx + esi], 0
mov byte [ebx + esi + 1], 0
mov esi, dword [esp + 0x2c]
push esi
call fcn.0045fe80
mov edx, dword [esp + 0x40]
add esp, 4
mov dword [edx], eax
test eax, eax
jne 0x467101
push esi
push str.no_such_vfs:__s
call fcn.0043d950
add esp, 8
mov esi, 1
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
cmp dword [0x4c90b0], 0
je 0x4670e9
mov eax, dword [0x4d3d78]
test eax, eax
je 0x4670ab
push eax
call dword [0x4c910c]
add esp, 4
mov edi, dword [esp + 0x10]
push edi
call dword [0x4c90e8]
sub dword [0x4d3d18], eax
dec dword [0x4d3d3c]
push edi
call dword [0x4c90e0]
mov eax, dword [0x4d3d78]
add esp, 8
test eax, eax
je 0x4670f7
push eax
call dword [0x4c9114]
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x467105
mov edx, dword [esp + 0x10]
push edx
call dword [0x4c90e0]
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x467105
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
pop edi
mov dword [edx], eax
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret