Function at 0x45c1e1
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
and dword [ebp - 0x10], 0
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
push edi
call fcn.0040af81
test byte [ebp - 4], 0x40
mov ebx, eax
jne 0x45c219
cmp dword [0x5e4284], 0
je 0x45c57c
cmp ebx, 5
jl 0x45c57c
mov esi, dword [ebp + 0xc]
push 5
pop ecx
mov edi, str.file:
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x45c57c
or dword [ebp - 4], 0x40
mov esi, dword [ebp + 0xc]
lea eax, [ebx + 2]
xor ecx, ecx
cmp ebx, ecx
cdq
mov dword [ebp + 8], ecx
mov dword [ebp - 0x2c], edx
jle 0x45c263
xor edi, edi
cmp byte [ecx + esi], 0x26
jne 0x45c257
inc edi
xor edx, edx
add eax, edi
adc dword [ebp - 0x2c], edx
inc ecx
cmp ecx, ebx
jl 0x45c24e
push dword [ebp - 0x2c]
push eax
call fcn.00408c98
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne 0x45c27d
push 7
pop eax
jmp 0x45c601
cmp byte [esi + 5], 0x2f
push 5
pop edx
jne 0x45c2d9
cmp byte [esi + 6], 0x2f
jne 0x45c2d9
lea eax, [esi + 7]
mov cl, byte [eax]
push 7
pop edx
test cl, cl
je 0x45c2d9
cmp cl, 0x2f
je 0x45c2a5
inc edx
mov cl, byte [edx + esi]
test cl, cl
jne 0x45c298
cmp edx, 7
je 0x45c2d9
cmp edx, 0x10
jne 0x45c2bf
push 9
pop ecx
mov edi, eax
mov esi, str.localhost
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x45c2d6
push eax
add edx, 0xfffffff9
push edx
push str.invalid_uri_authority:__.s
call fcn.0040a698
add esp, 0xc
jmp 0x45c5d5
mov esi, dword [ebp + 0xc]
mov al, byte [edx + esi]
xor edi, edi
test al, al
je 0x45c412
cmp al, 0x23
je 0x45c400
inc edx
cmp al, 0x25
jne 0x45c38f
mov cl, byte [edx + esi]
movzx ebx, cl
test byte [ebx + 0x5d64d8], 8
je 0x45c38f
movzx ebx, byte [edx + esi + 1]
test byte [ebx + 0x5d64d8], 8
je 0x45c38f
inc edx
movsx eax, byte [edx + esi]
mov dword [ebp - 0x20], eax
movsx ecx, cl
mov eax, ecx
sar eax, 6
and al, 1
mov bl, 7
imul bl
sub cl, al
mov eax, dword [ebp - 0x20]
sar eax, 6
and al, 1
imul bl
mov esi, dword [ebp + 0xc]
mov bl, al
mov eax, dword [ebp - 0x20]
sub al, bl
and ecx, 0xf
shl ecx, 4
and eax, 0xf
add ecx, eax
inc edx
test ecx, ecx
je 0x45c386
mov al, cl
jmp 0x45c3e9
cmp al, 0x23
je 0x45c3f5
test edi, edi
jne 0x45c36f
cmp al, 0x3f
je 0x45c3f5
cmp edi, 1
jne 0x45c37c
cmp al, 0x3d
je 0x45c3f5
cmp al, 0x26
je 0x45c3f5
cmp edi, 2
jne 0x45c385
cmp al, 0x26
je 0x45c3f5
inc edx
mov al, byte [edx + esi]
test al, al
jne 0x45c35b
jmp 0x45c3f5
cmp edi, 1
jne 0x45c3d3
cmp al, 0x26
je 0x45c39c
cmp al, 0x3d
jne 0x45c3e9
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp + 8]
cmp byte [ebx + ecx - 1], 0
je 0x45c3c3
cmp al, 0x26
jne 0x45c3cc
mov byte [ebx + ecx], 0
inc ecx
mov dword [ebp + 8], ecx
jmp 0x45c3cf
cmp al, 0x23
je 0x45c3f5
cmp byte [edx + esi - 1], 0x26
je 0x45c3f5
inc edx
mov al, byte [edx + esi]
test al, al
jne 0x45c3b7
jmp 0x45c3f5
push 2
pop edi
xor al, al
jmp 0x45c3e9
test edi, edi
jne 0x45c3db
cmp al, 0x3f
je 0x45c3e4
cmp edi, 2
jne 0x45c3e9
cmp al, 0x26
jne 0x45c3e9
xor edi, edi
xor al, al
inc edi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 8]
inc dword [ebp + 8]
mov byte [ecx + ebx], al
mov al, byte [edx + esi]
test al, al
jne 0x45c2e6
cmp edi, 1
jne 0x45c412
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 8]
inc dword [ebp + 8]
mov byte [eax + ecx], 0
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 8]
add eax, esi
mov byte [eax], 0
mov byte [eax + 1], 0
mov eax, esi
call fcn.0040af81
lea ebx, [eax + esi + 1]
jmp 0x45c555
mov eax, ebx
call fcn.0040af81
mov esi, eax
lea eax, [esi + ebx + 1]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0xc], eax
call fcn.0040af81
mov dword [ebp - 0x20], eax
cmp esi, 3
jne 0x45c46b
push esi
pop ecx
mov edi, ebx
mov esi, 0x5df2fc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x45c46b
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x24], eax
jmp 0x45c54b
xor edx, edx
cmp dword [ebp - 0x2c], 5
mov dword [ebp + 8], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
jne 0x45c4ac
push 5
mov edx, str.cache
pop ecx
mov edi, ebx
mov esi, edx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x45c54b
mov eax, 0x60000
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp + 8], 0x5e5808
mov dword [ebp - 0x18], eax
xor edx, edx
cmp dword [ebp - 0x2c], 4
jne 0x45c4db
mov eax, str.mode
mov eax, dword [eax]
cmp eax, dword [ebx]
jne 0x45c4db
mov eax, dword [ebp - 4]
mov ecx, 0x87
and eax, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp + 8], 0x5e5820
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], str.access
cmp dword [ebp + 8], edx
je 0x45c54b
mov eax, dword [ebp + 8]
mov edi, dword [eax]
xor ebx, ebx
cmp edi, edx
je 0x45c517
mov eax, edi
call fcn.0040af81
cmp dword [ebp - 0x20], eax
jne 0x45c50c
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x45c508
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45c527
mov eax, dword [ebp + 8]
inc ebx
mov edi, dword [eax + ebx*8]
test edi, edi
jne 0x45c4eb
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push str.no_such__s_mode:__s
jmp 0x45c2c9
mov eax, dword [ebp + 8]
mov ecx, dword [eax + ebx*8 + 4]
test ecx, ecx
je 0x45c517
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [ebp - 0x18]
jg 0x45c560
mov eax, dword [ebp - 0x1c]
not eax
and eax, dword [ebp - 4]
or eax, ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
lea ebx, [eax + ecx + 1]
cmp byte [ebx], 0
jne 0x45c431
jmp 0x45c5b4
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push str._s_mode_not_allowed:__s
call fcn.0040a698
add esp, 0xc
mov dword [ebp - 0x10], 3
jmp 0x45c5dc
lea eax, [ebx + 2]
cdq
push edx
push eax
call fcn.00408c98
mov esi, eax
pop ecx
pop ecx
mov dword [ebp - 8], esi
test esi, esi
je 0x45c275
test ebx, ebx
je 0x45c5a7
push ebx
push dword [ebp + 0xc]
push esi
call fcn.0055bc50
add esp, 0xc
add ebx, esi
and dword [ebp - 4], 0xffffffbf
mov byte [ebx], 0
mov byte [ebx + 1], 0
push dword [ebp - 0x24]
call fcn.00408605
pop ecx
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
test eax, eax
jne 0x45c5ee
push dword [ebp - 0x24]
push str.no_such_vfs:__s
call fcn.0040a698
pop ecx
pop ecx
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp + 0x1c]
push dword [ebp - 8]
mov dword [ecx], eax
call fcn.00408d0f
and dword [ebp - 8], 0
pop ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
leave
ret