Function at 0x4672a0
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 0x4672c5
xor esi, esi
jmp 0x4672e0
mov eax, edi
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4672d0
sub eax, esi
and eax, 0x3fffffff
mov esi, eax
test bl, 0x40
jne 0x4672f1
cmp dword [0x4c90bc], ecx
je 0x467755
cmp esi, 5
jl 0x467755
cmp dword [edi], 0x656c6966
jne 0x467755
cmp byte [edi + 4], 0x3a
jne 0x467755
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 0x467341
cmp byte [eax + edi], 0x26
jne 0x467334
mov ecx, 1
jmp 0x467336
xor ecx, ecx
xor edx, edx
add ebx, ecx
adc ebp, edx
inc eax
cmp eax, esi
jl 0x467327
call fcn.004603e0
test eax, eax
jne 0x46735c
push ebp
push ebx
call fcn.0042a260
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x467369
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 0x4673e2
cmp byte [edi + 6], cl
jne 0x4673e2
mov al, byte [edi + 7]
lea ebx, [edi + 7]
mov esi, 7
test al, al
je 0x4673e2
lea esp, [esp]
cmp al, cl
je 0x46739d
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x467390
cmp esi, 7
je 0x4673e2
cmp esi, 0x10
jne 0x4673cb
lea eax, [esi - 7]
mov ecx, ebx
mov edx, str.localhost
mov ebp, dword [edx]
cmp ebp, dword [ecx]
jne 0x4673cb
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x4673b1
mov al, byte [ecx]
cmp al, byte [edx]
je 0x4673e2
push ebx
add esi, 0xfffffff9
push esi
push str.invalid_uri_authority:__.s
call fcn.0043e090
add esp, 0xc
jmp 0x4677c4
mov al, byte [esi + edi]
xor ebp, ebp
test al, al
je 0x46752f
nop
mov edx, dword [esp + 0x18]
cmp al, 0x23
je 0x46751d
inc esi
cmp al, 0x25
jne 0x4674a1
mov cl, byte [esi + edi]
movzx ebx, cl
test byte [ebx + 0x4b7860], 8
je 0x4674a1
movzx ebx, byte [esi + edi + 1]
test byte [ebx + 0x4b7860], 8
je 0x4674a1
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 0x467499
mov al, byte [esi + edi]
test al, al
je 0x46750e
cmp al, 0x23
je 0x46750e
test ebp, ebp
jne 0x467472
cmp al, 0x3f
jmp 0x467488
cmp ebp, 1
jne 0x467481
cmp al, 0x3d
je 0x46750e
jmp 0x467486
cmp ebp, 2
jne 0x46748e
cmp al, 0x26
je 0x46750e
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x467462
jmp 0x46750e
mov edx, dword [esp + 0x18]
mov al, cl
jmp 0x467502
cmp ebp, 1
jne 0x4674e8
cmp al, 0x26
je 0x4674ae
cmp al, 0x3d
jne 0x467502
mov ecx, dword [esp + 0x10]
cmp byte [ecx + edx - 1], 0
jne 0x4674d6
mov al, byte [esi + edi]
test al, al
je 0x46750e
cmp al, 0x23
je 0x46750e
cmp byte [esi + edi - 1], 0x26
je 0x46750e
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x4674c0
jmp 0x46750e
cmp al, 0x26
jne 0x4674e1
mov byte [ecx + edx], 0
inc edx
jmp 0x467500
mov ebp, 2
jmp 0x467500
test ebp, ebp
jne 0x4674f2
cmp al, 0x3f
je 0x4674fb
jmp 0x467502
cmp ebp, 2
jne 0x467502
cmp al, 0x26
jne 0x467502
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 0x4673f0
mov edx, dword [esp + 0x18]
cmp ebp, 1
jne 0x46752f
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 0x467545
sub eax, edx
and eax, 0x3fffffff
cmp byte [eax + esi + 1], 0
lea ecx, [eax + esi + 1]
je 0x46779b
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x467567
sub eax, esi
and eax, 0x3fffffff
mov esi, eax
lea eax, [esi + ecx + 1]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x46758b
xor ebx, ebx
mov dword [esp + 0x18], ebx
jmp 0x4675a4
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x467590
sub eax, edi
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp + 0x18], eax
cmp esi, 3
jne 0x4675d3
cmp byte [ecx], 0x76
jne 0x467722
cmp byte [ecx + 1], 0x66
jne 0x467722
cmp byte [ecx + 2], 0x73
jne 0x467722
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
jmp 0x467722
cmp esi, 5
jne 0x467606
cmp dword [ecx], 0x68636163
jne 0x467722
cmp byte [ecx + 4], 0x65
jne 0x467722
mov eax, 0x60000
mov dword [esp + 0x28], eax
mov edi, 0x4ca088
mov dword [esp + 0x20], str.cache
jmp 0x467639
cmp esi, 4
jne 0x467722
cmp dword [ecx], 0x65646f6d
jne 0x467722
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 0x4676dc
mov eax, ecx
lea esi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x467650
sub eax, esi
and eax, 0x3fffffff
cmp ebx, eax
jne 0x4676cf
mov edx, dword [esp + 0x1c]
mov esi, ebx
cmp ebx, 4
jb 0x467684
lea ecx, [ecx]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x467688
sub esi, 4
add ecx, 4
add edx, 4
cmp esi, 4
jae 0x467670
test esi, esi
je 0x4676fc
movzx ebx, byte [ecx]
movzx eax, byte [edx]
sub eax, ebx
jne 0x4676c3
cmp esi, 1
jbe 0x4676f8
movzx eax, byte [edx + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x4676c3
cmp esi, 2
jbe 0x4676f8
movzx eax, byte [edx + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x4676c3
cmp esi, 3
jbe 0x4676f8
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 0x4676fc
mov ecx, dword [edi + ebp*8 + 8]
inc ebp
test ecx, ecx
jne 0x467649
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
push str.no_such__s_mode:__s
call fcn.0043e090
add esp, 0xc
jmp 0x4677c4
mov ebx, dword [esp + 0x18]
mov eax, dword [edi + ebp*8 + 4]
test eax, eax
je 0x4676dc
mov edx, eax
and edx, 0xffffff7f
cmp edx, dword [esp + 0x24]
jg 0x467737
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 0x467562
jmp 0x46779b
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push edx
push eax
push str._s_mode_not_allowed:__s
call fcn.0043e090
add esp, 0xc
mov esi, 3
jmp 0x4677c9
call fcn.004603e0
test eax, eax
jne 0x46735c
lea eax, [esi + 2]
cdq
push edx
push eax
call fcn.0042a260
mov ebx, eax
add esp, 8
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x46735c
test esi, esi
je 0x46778d
push esi
push edi
push ebx
call fcn.00495ae0
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.004605c0
mov edx, dword [esp + 0x40]
add esp, 4
mov dword [edx], eax
test eax, eax
jne 0x467841
push esi
push str.no_such_vfs:__s
call fcn.0043e090
add esp, 8
mov esi, 1
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
cmp dword [0x4c90b0], 0
je 0x467829
mov eax, dword [0x4d3da8]
test eax, eax
je 0x4677eb
push eax
call dword [0x4c910c]
add esp, 4
mov edi, dword [esp + 0x10]
push edi
call dword [0x4c90e8]
sub dword [0x4d3d48], eax
dec dword [0x4d3d6c]
push edi
call dword [0x4c90e0]
mov eax, dword [0x4d3da8]
add esp, 8
test eax, eax
je 0x467837
push eax
call dword [0x4c9114]
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x467845
mov edx, dword [esp + 0x10]
push edx
call dword [0x4c90e0]
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x467845
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