Function at 0x18147588
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 8]
and dword [ebp - 0x14], 0
push ebx
mov ebx, edx
mov dword [ebp - 0x28], ecx
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
push esi
push edi
test ebx, ebx
jne 0x181475aa
xor esi, esi
jmp 0x181475bc
push ebx
call fcn.1817e400
mov esi, eax
mov eax, dword [ebp - 0xc]
pop ecx
and esi, 0x3fffffff
test al, 0x40
jne 0x181475cd
cmp byte [0x1822bdfe], 0
je 0x18147991
cmp esi, 5
jb 0x18147991
push 5
push str.file:
push ebx
call fcn.18175acf
add esp, 0xc
test eax, eax
jne 0x18147991
and dword [ebp - 8], eax
lea ecx, [esi + 8]
xor edx, edx
or dword [ebp - 0xc], 0x40
xor edi, edi
cmp byte [eax + ebx], 0x26
jne 0x18147609
inc edi
and dword [ebp - 0x1c], 0
jmp 0x1814760c
and dword [ebp - 0x1c], edi
add ecx, edi
adc edx, dword [ebp - 0x1c]
inc eax
cmp eax, esi
jl 0x181475fa
push edx
push ecx
call fcn.180e6690
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x181479a4
push 4
push 0
push edi
call fcn.181757a0
add esp, 0xc
add edi, 4
cmp byte [ebx + 5], 0x2f
push 5
pop esi
jne 0x181476a2
cmp byte [ebx + 6], 0x2f
jne 0x181476a2
lea ecx, [ebx + 7]
mov al, byte [ecx]
mov dword [ebp - 0x24], ecx
push 7
pop esi
test al, al
je 0x181476a2
cmp al, 0x2f
je 0x18147663
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x18147657
cmp esi, 7
je 0x181476a2
cmp esi, 0x10
jne 0x18147684
push 9
push ecx
push str.localhost
call fcn.18175acf
add esp, 0xc
test eax, eax
je 0x181476a2
mov ecx, dword [ebp - 0x24]
push ecx
lea eax, [esi - 7]
push eax
push str.invalid_uri_authority:__.s
mov dword [ebp - 0x14], 1
call fcn.180e844e
add esp, 0xc
jmp 0x18147a05
mov cl, byte [esi + ebx]
xor edx, edx
mov dword [ebp - 0x10], edx
test cl, cl
je 0x181477e8
cmp cl, 0x23
je 0x181477d9
inc esi
cmp cl, 0x25
jne 0x1814775e
movzx eax, byte [esi + ebx]
test byte [eax + 0x181e6a30], 8
je 0x1814775e
movzx eax, byte [esi + ebx + 1]
test byte [eax + 0x181e6a30], 8
je 0x1814775e
mov dl, byte [esi + ebx]
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
mov edx, dword [ebp - 0x10]
jne 0x181477c4
jmp 0x18147755
cmp al, 0x23
je 0x181477ce
test edx, edx
jne 0x18147736
cmp al, 0x3f
je 0x181477ce
cmp edx, 1
jne 0x1814774b
cmp al, 0x3d
je 0x181477ce
cmp al, 0x26
je 0x181477ce
cmp edx, 2
jne 0x18147754
cmp al, 0x26
je 0x181477ce
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x18147722
jmp 0x181477ce
cmp edx, 1
jne 0x181477a9
cmp cl, 0x26
je 0x1814776d
cmp cl, 0x3d
jne 0x181477c4
mov eax, dword [ebp - 8]
cmp byte [edi + eax - 1], 0
je 0x18147796
cmp cl, 0x26
jne 0x1814779f
mov ecx, eax
mov byte [edi + ecx], 0
inc ecx
mov dword [ebp - 8], ecx
mov eax, ecx
jmp 0x181477a5
cmp al, 0x23
je 0x181477ce
cmp byte [esi + ebx - 1], 0x26
je 0x181477ce
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x1814778a
jmp 0x181477ce
push 2
pop edx
mov dword [ebp - 0x10], edx
xor cl, cl
jmp 0x181477c7
test edx, edx
jne 0x181477b2
cmp cl, 0x3f
je 0x181477bc
cmp edx, 2
jne 0x181477c4
cmp cl, 0x26
jne 0x181477c4
xor edx, edx
xor cl, cl
inc edx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 8]
mov byte [edi + eax], cl
inc eax
mov dword [ebp - 8], eax
mov cl, byte [esi + ebx]
test cl, cl
jne 0x181476b2
mov eax, dword [ebp - 8]
cmp edx, 1
jne 0x181477eb
mov byte [edi + eax], 0
inc eax
jmp 0x181477eb
mov eax, dword [ebp - 8]
push 4
add eax, edi
push 0
push eax
call fcn.181757a0
add esp, 0xc
test edi, edi
jne 0x18147802
xor eax, eax
jmp 0x1814780e
push edi
call fcn.1817e400
pop ecx
and eax, 0x3fffffff
lea esi, [edi + 1]
add esi, eax
jmp 0x18147967
push esi
call fcn.1817e400
mov ebx, eax
lea eax, [esi + 1]
and ebx, 0x3fffffff
add eax, ebx
pop ecx
mov dword [ebp - 8], eax
jne 0x18147837
and dword [ebp - 0x1c], 0
jmp 0x18147846
push eax
call fcn.1817e400
and eax, 0x3fffffff
pop ecx
mov dword [ebp - 0x1c], eax
cmp ebx, 3
jne 0x1814786d
push ebx
push esi
push 0x1821db4c
call fcn.18175acf
mov ebx, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x18147961
mov dword [ebp - 0x28], ebx
jmp 0x18147961
cmp ebx, 5
jne 0x1814789a
push ebx
push esi
mov ebx, str.cache
push ebx
call fcn.18175acf
add esp, 0xc
test eax, eax
jne 0x1814795e
mov edx, 0x60000
mov ecx, 0x1822f1cc
mov esi, edx
mov eax, ebx
jmp 0x181478d0
cmp ebx, 4
jne 0x1814795e
push ebx
push esi
push str.mode
call fcn.18175acf
add esp, 0xc
test eax, eax
jne 0x1814795e
mov edx, dword [ebp - 0xc]
mov eax, 0x87
mov esi, eax
and edx, eax
mov ecx, 0x1822f19c
mov eax, str.access
mov ebx, dword [ecx]
and dword [ebp - 0x18], 0
test ebx, ebx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 8]
je 0x18147985
push dword [ebp - 0x10]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], ecx
call fcn.1817e400
pop ecx
mov ecx, dword [ebp - 0x1c]
and eax, 0x3fffffff
cmp ecx, eax
jne 0x18147913
push ecx
push dword [ebp - 0x10]
push ebx
call fcn.18175acf
add esp, 0xc
test eax, eax
je 0x18147933
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
inc eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + eax*8]
mov dword [ebp - 0x10], eax
mov eax, edx
cmp dword [ebp - 0x10], 0
je 0x18147985
mov edx, dword [ebp - 0x24]
jmp 0x181478e4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov ecx, dword [eax + ecx*8 + 4]
mov eax, edx
test ecx, ecx
je 0x18147985
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [ebp - 0x24]
jg 0x18147972
not esi
and esi, dword [ebp - 0xc]
or esi, ecx
mov dword [ebp - 0xc], esi
jmp 0x18147961
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
inc esi
add esi, ebx
cmp byte [esi], 0
jne 0x18147818
jmp 0x181479dc
push ebx
push edx
mov dword [ebp - 0x14], 3
push str._s_mode_not_allowed:__s
jmp 0x18147695
push ebx
push eax
push str.no_such__s_mode:__s
jmp 0x1814768e
lea eax, [esi + 8]
push 0
push eax
call fcn.180e6690
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x181479a9
push 7
pop eax
jmp 0x18147a23
push 4
push 0
push edi
call fcn.181757a0
add esp, 0xc
add edi, 4
test esi, esi
je 0x181479c8
push esi
push ebx
push edi
call fcn.18175220
add esp, 0xc
push 4
lea eax, [edi + esi]
push 0
push eax
call fcn.181757a0
add esp, 0xc
and dword [ebp - 0xc], 0xffffffbf
mov esi, dword [ebp - 0x28]
push esi
call fcn.180e5eb2
pop ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
test ecx, ecx
jne 0x18147a13
push esi
push str.no_such_vfs:__s
mov dword [ebp - 0x14], 1
call fcn.180e844e
pop ecx
pop ecx
mov ecx, dword [ebp + 0x14]
push edi
mov dword [ecx], eax
call fcn.181488e1
pop ecx
xor edi, edi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x14]
mov dword [ecx], edi
pop edi
pop esi
pop ebx
leave
ret