Function at 0x4a7928
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 - 0x2c], ecx
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
push esi
push edi
test ebx, ebx
jne 0x4a794a
xor esi, esi
jmp 0x4a795c
push ebx
call fcn.004b5c60
mov esi, eax
mov eax, dword [ebp - 0xc]
pop ecx
and esi, 0x3fffffff
test al, 0x40
jne 0x4a796d
cmp byte [0x4e29fe], 0
je 0x4a7d3f
cmp esi, 5
jb 0x4a7d3f
push 5
push str.file:
push ebx
call fcn.004b231a
add esp, 0xc
test eax, eax
jne 0x4a7d3f
and dword [ebp - 8], eax
lea ecx, [esi + 8]
xor edx, edx
or dword [ebp - 0xc], 0x40
cmp byte [ebx + eax], 0x26
jne 0x4a79a9
xor edi, edi
inc edi
and dword [ebp - 0x1c], 0
jmp 0x4a79ba
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x28]
add ecx, edi
adc edx, dword [ebp - 0x1c]
inc eax
cmp eax, esi
jl 0x4a799a
push edx
push ecx
call fcn.0043ee48
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4a7d52
push 4
push 0
push edi
call fcn.004b21c0
add esp, 0xc
add edi, 4
cmp byte [ebx + 5], 0x2f
push 5
pop esi
jne 0x4a7a50
cmp byte [ebx + 6], 0x2f
jne 0x4a7a50
lea ecx, [ebx + 7]
mov al, byte [ecx]
mov dword [ebp - 0x24], ecx
push 7
pop esi
test al, al
je 0x4a7a50
cmp al, 0x2f
je 0x4a7a11
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x4a7a05
cmp esi, 7
je 0x4a7a50
cmp esi, 0x10
jne 0x4a7a32
push 9
push ecx
push str.localhost
call fcn.004b231a
add esp, 0xc
test eax, eax
je 0x4a7a50
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.00440d9e
add esp, 0xc
jmp 0x4a7db3
mov cl, byte [esi + ebx]
xor edx, edx
mov dword [ebp - 0x10], edx
test cl, cl
je 0x4a7b96
cmp cl, 0x23
je 0x4a7b87
inc esi
cmp cl, 0x25
jne 0x4a7b0c
movzx eax, byte [esi + ebx]
test byte [eax + 0x4cc8a8], 8
je 0x4a7b0c
movzx eax, byte [esi + ebx + 1]
test byte [eax + 0x4cc8a8], 8
je 0x4a7b0c
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 0x4a7b72
jmp 0x4a7b03
cmp al, 0x23
je 0x4a7b7c
test edx, edx
jne 0x4a7ae4
cmp al, 0x3f
je 0x4a7b7c
cmp edx, 1
jne 0x4a7af9
cmp al, 0x3d
je 0x4a7b7c
cmp al, 0x26
je 0x4a7b7c
cmp edx, 2
jne 0x4a7b02
cmp al, 0x26
je 0x4a7b7c
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x4a7ad0
jmp 0x4a7b7c
cmp edx, 1
jne 0x4a7b57
cmp cl, 0x26
je 0x4a7b1b
cmp cl, 0x3d
jne 0x4a7b72
mov eax, dword [ebp - 8]
cmp byte [edi + eax - 1], 0
je 0x4a7b44
cmp cl, 0x26
jne 0x4a7b4d
mov ecx, eax
mov byte [edi + ecx], 0
inc ecx
mov dword [ebp - 8], ecx
mov eax, ecx
jmp 0x4a7b53
cmp al, 0x23
je 0x4a7b7c
cmp byte [esi + ebx - 1], 0x26
je 0x4a7b7c
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x4a7b38
jmp 0x4a7b7c
push 2
pop edx
mov dword [ebp - 0x10], edx
xor cl, cl
jmp 0x4a7b75
test edx, edx
jne 0x4a7b60
cmp cl, 0x3f
je 0x4a7b6a
cmp edx, 2
jne 0x4a7b72
cmp cl, 0x26
jne 0x4a7b72
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 0x4a7a60
mov eax, dword [ebp - 8]
cmp edx, 1
jne 0x4a7b99
mov byte [edi + eax], 0
inc eax
jmp 0x4a7b99
mov eax, dword [ebp - 8]
push 4
add eax, edi
push 0
push eax
call fcn.004b21c0
add esp, 0xc
test edi, edi
jne 0x4a7bb0
xor eax, eax
jmp 0x4a7bbc
push edi
call fcn.004b5c60
pop ecx
and eax, 0x3fffffff
lea esi, [eax + 1]
add esi, edi
jmp 0x4a7d15
push esi
call fcn.004b5c60
mov ebx, eax
lea eax, [esi + 1]
and ebx, 0x3fffffff
add eax, ebx
pop ecx
mov dword [ebp - 8], eax
jne 0x4a7be5
and dword [ebp - 0x1c], 0
jmp 0x4a7bf4
push eax
call fcn.004b5c60
and eax, 0x3fffffff
pop ecx
mov dword [ebp - 0x1c], eax
cmp ebx, 3
jne 0x4a7c1b
push ebx
push esi
push 0x4d7f5c
call fcn.004b231a
mov ebx, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x4a7d0f
mov dword [ebp - 0x2c], ebx
jmp 0x4a7d0f
cmp ebx, 5
jne 0x4a7c48
push ebx
push esi
mov ebx, str.cache
push ebx
call fcn.004b231a
add esp, 0xc
test eax, eax
jne 0x4a7d0c
mov edx, 0x60000
mov ecx, 0x4e4314
mov esi, edx
mov eax, ebx
jmp 0x4a7c7e
cmp ebx, 4
jne 0x4a7d0c
push ebx
push esi
push str.mode
call fcn.004b231a
add esp, 0xc
test eax, eax
jne 0x4a7d0c
mov edx, dword [ebp - 0xc]
mov eax, 0x87
mov esi, eax
and edx, eax
mov ecx, 0x4e3ff0
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 0x4a7d33
push dword [ebp - 0x10]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], ecx
call fcn.004b5c60
pop ecx
mov ecx, dword [ebp - 0x1c]
and eax, 0x3fffffff
cmp ecx, eax
jne 0x4a7cc1
push ecx
push dword [ebp - 0x10]
push ebx
call fcn.004b231a
add esp, 0xc
test eax, eax
je 0x4a7ce1
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 0x4a7d33
mov edx, dword [ebp - 0x24]
jmp 0x4a7c92
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 0x4a7d33
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [ebp - 0x24]
jg 0x4a7d20
not esi
and esi, dword [ebp - 0xc]
or esi, ecx
mov dword [ebp - 0xc], esi
jmp 0x4a7d0f
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
inc esi
add esi, ebx
cmp byte [esi], 0
jne 0x4a7bc6
jmp 0x4a7d8a
push ebx
push edx
mov dword [ebp - 0x14], 3
push str._s_mode_not_allowed:__s
jmp 0x4a7a43
push ebx
push eax
push str.no_such__s_mode:__s
jmp 0x4a7a3c
lea eax, [esi + 8]
push 0
push eax
call fcn.0043ee48
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x4a7d57
push 7
pop eax
jmp 0x4a7dd1
push 4
push 0
push edi
call fcn.004b21c0
add esp, 0xc
add edi, 4
test esi, esi
je 0x4a7d76
push esi
push ebx
push edi
call fcn.004b1c10
add esp, 0xc
push 4
lea eax, [edi + esi]
push 0
push eax
call fcn.004b21c0
add esp, 0xc
and dword [ebp - 0xc], 0xffffffbf
mov esi, dword [ebp - 0x2c]
push esi
call fcn.0043ea4c
pop ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
test ecx, ecx
jne 0x4a7dc1
push esi
push str.no_such_vfs:__s
mov dword [ebp - 0x14], 1
call fcn.00440d9e
pop ecx
pop ecx
mov ecx, dword [ebp + 0x14]
push edi
mov dword [ecx], eax
call fcn.004a8c2c
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