Function at 0x4921c0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edx
mov eax, edi
cmp edi, ecx
jne 0x4921ee
xor esi, esi
jmp 0x492200
cmp byte [edi], cl
je 0x4921f7
inc eax
cmp byte [eax], cl
jne 0x4921f2
sub eax, edi
and eax, 0x3fffffff
mov esi, eax
test dl, 0x40
jne 0x492211
cmp dword [0x4c4c3c], ecx
je 0x4926c9
cmp esi, 5
jl 0x4926c9
cmp dword [edi], 0x656c6966
jne 0x4926c9
cmp byte [edi + 4], 0x3a
jne 0x4926c9
or dword [esp + 0x14], 0x40
xor ebx, ebx
lea edx, [esi + 2]
xor eax, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
cmp esi, 2
jl 0x49226a
xor edx, edx
cmp byte [edi + eax], 0x26
sete dl
add ecx, edx
xor edx, edx
cmp byte [edi + eax + 1], 0x26
sete dl
add eax, 2
add ebx, edx
lea edx, [esi - 1]
cmp eax, edx
jl 0x492249
cmp eax, esi
mov esi, dword [esp + 0x24]
jge 0x49227d
xor edx, edx
cmp byte [eax + edi], 0x26
sete dl
add esi, edx
add ebx, ecx
add esi, ebx
call fcn.0048ff70
test eax, eax
jne 0x4922a3
test esi, esi
jle 0x4922a3
mov eax, esi
cdq
push edx
push eax
call fcn.0041e830
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4922af
mov eax, 7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dl, 0x2f
mov esi, 5
cmp byte [edi + 5], dl
jne 0x492327
cmp byte [edi + 6], dl
jne 0x492327
mov al, byte [edi + 7]
lea ecx, [edi + 7]
mov esi, 7
mov dword [esp + 0x30], ecx
test al, al
je 0x492327
cmp al, dl
je 0x4922e0
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x4922d3
cmp esi, 7
je 0x492327
cmp esi, 0x10
jne 0x492310
lea eax, [esi - 7]
mov edx, str.localhost
mov ebx, dword [edx]
cmp ebx, dword [ecx]
jne 0x49230c
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x4922f2
mov al, byte [ecx]
cmp al, byte [edx]
je 0x492327
mov ecx, dword [esp + 0x30]
push ecx
add esi, 0xfffffff9
push esi
push str.invalid_uri_authority:__.s
call fcn.00420b00
add esp, 0xc
jmp 0x49273a
mov al, byte [esi + edi]
xor edx, edx
mov dword [esp + 0x1c], edx
test al, al
je 0x492499
cmp al, 0x23
je 0x492485
inc esi
cmp al, 0x25
jne 0x4923fb
mov cl, byte [esi + edi]
movzx ebx, cl
test byte [ebx + 0x4b35f8], 8
je 0x4923fb
movzx ebx, byte [esi + edi + 1]
test byte [ebx + 0x4b35f8], 8
je 0x4923fb
movsx eax, cl
movsx ecx, byte [esi + edi + 1]
mov edx, eax
sar edx, 6
and dl, 1
mov bl, dl
add bl, bl
add bl, bl
add bl, bl
sub bl, dl
sub al, bl
mov edx, ecx
sar edx, 6
and dl, 1
mov bl, dl
add bl, bl
add bl, bl
add bl, bl
sub bl, dl
mov edx, dword [esp + 0x1c]
sub cl, bl
and eax, 0xf
shl eax, 4
add esi, 2
and ecx, 0xf
add eax, ecx
jne 0x49246a
mov al, byte [esi + edi]
test al, al
je 0x49247a
cmp al, 0x23
je 0x49247a
test edx, edx
jne 0x4923d1
cmp al, 0x3f
jmp 0x4923e7
cmp edx, 1
jne 0x4923e0
cmp al, 0x3d
je 0x49247a
jmp 0x4923e5
cmp edx, 2
jne 0x4923ed
cmp al, 0x26
je 0x49247a
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x4923c1
jmp 0x49247a
cmp edx, 1
jne 0x49244c
cmp al, 0x26
je 0x492408
cmp al, 0x3d
jne 0x49246a
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
cmp byte [ebx + ecx - 1], 0
jne 0x492436
mov al, byte [esi + edi]
test al, al
je 0x49247a
mov edi, edi
cmp al, 0x23
je 0x49247a
cmp byte [esi + edi - 1], 0x26
je 0x49247a
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x492420
jmp 0x49247a
cmp al, 0x26
jne 0x492445
mov byte [ebx + ecx], 0
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x492468
mov edx, 2
jmp 0x492464
test edx, edx
jne 0x492456
cmp al, 0x3f
je 0x49245f
jmp 0x49246a
cmp edx, 2
jne 0x49246a
cmp al, 0x26
jne 0x49246a
mov edx, 1
mov dword [esp + 0x1c], edx
xor al, al
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov byte [ebx + ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov al, byte [esi + edi]
test al, al
jne 0x492338
cmp edx, 1
jne 0x492499
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov byte [ecx + eax], 0
inc eax
jmp 0x49249d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov word [ecx + eax], 0
cmp byte [ecx], 0
mov eax, ecx
je 0x4924b6
mov edi, edi
inc eax
cmp byte [eax], 0
jne 0x4924b0
sub eax, ecx
and eax, 0x3fffffff
cmp byte [eax + ecx + 1], 0
lea edx, [eax + ecx + 1]
je 0x492712
lea esp, [esp]
mov eax, edx
inc eax
cmp byte [eax], 0
jne 0x4924d2
sub eax, edx
and eax, 0x3fffffff
lea ebx, [eax + edx + 1]
xor esi, esi
mov dword [esp + 0x1c], ebx
mov ecx, ebx
cmp ebx, esi
jne 0x4924f5
mov dword [esp + 0x18], esi
jmp 0x492512
cmp byte [ebx], 0
je 0x492506
lea ebx, [ebx]
inc ecx
cmp byte [ecx], 0
jne 0x492500
sub ecx, ebx
and ecx, 0x3fffffff
mov dword [esp + 0x18], ecx
cmp eax, 3
jne 0x49253d
cmp byte [edx], 0x76
jne 0x49269a
cmp byte [edx + 1], 0x66
jne 0x49269a
cmp byte [edx + 2], 0x73
jne 0x49269a
mov dword [esp + 0x28], ebx
jmp 0x49269a
cmp eax, 5
jne 0x492570
cmp dword [edx], 0x68636163
jne 0x49269a
cmp byte [edx + 4], 0x65
jne 0x49269a
mov eax, 0x60000
mov dword [esp + 0x30], eax
mov edi, 0x4c5bcc
mov dword [esp + 0x24], str.cache
jmp 0x4925a3
cmp eax, 4
jne 0x49269a
cmp dword [edx], 0x65646f6d
jne 0x49269a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], 0x87
mov edi, 0x4c5be4
and eax, 0x87
mov dword [esp + 0x24], str.access
mov ecx, dword [edi]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], esi
cmp ecx, esi
je 0x492654
mov eax, ecx
test ecx, ecx
je 0x4925cd
cmp byte [ecx], 0
je 0x4925c6
inc eax
cmp byte [eax], 0
jne 0x4925c0
sub eax, ecx
and eax, 0x3fffffff
cmp dword [esp + 0x18], eax
jne 0x49263f
mov esi, dword [esp + 0x18]
mov edx, ebx
cmp esi, 4
jb 0x4925f4
mov edi, edi
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4925f8
sub esi, 4
add ecx, 4
add edx, 4
cmp esi, 4
jae 0x4925e0
test esi, esi
je 0x492670
movzx eax, byte [edx]
movzx ebx, byte [ecx]
sub eax, ebx
jne 0x492633
cmp esi, 1
jbe 0x49266c
movzx eax, byte [edx + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x492633
cmp esi, 2
jbe 0x49266c
movzx eax, byte [edx + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x492633
cmp esi, 3
jbe 0x49266c
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov ebx, dword [esp + 0x1c]
sar eax, 0x1f
or eax, 1
je 0x492670
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + eax*8 + 8]
inc eax
mov dword [esp + 0x20], eax
test ecx, ecx
jne 0x4925b5
mov eax, dword [esp + 0x24]
push ebx
push eax
push str.no_such__s_mode:__s
call fcn.00420b00
add esp, 0xc
jmp 0x49273a
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [edi + edx*8 + 4]
test eax, eax
je 0x492654
mov ecx, eax
and ecx, 0xffffff7f
cmp ecx, dword [esp + 0x2c]
jg 0x4926af
mov ecx, dword [esp + 0x30]
not ecx
and ecx, dword [esp + 0x14]
or ecx, eax
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x18]
cmp byte [edx + ebx + 1], 0
lea edx, [edx + ebx + 1]
jne 0x4924d0
jmp 0x492712
mov edx, dword [esp + 0x24]
push ebx
push edx
push str._s_mode_not_allowed:__s
call fcn.00420b00
add esp, 0xc
mov esi, 3
jmp 0x49273f
lea ebx, [esi + 2]
call fcn.0048ff70
test eax, eax
jne 0x4922a3
test ebx, ebx
jle 0x4922a3
mov eax, ebx
cdq
push edx
push eax
call fcn.0041e830
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4922a3
push esi
push edi
mov edi, eax
push edi
call fcn.00499190
add esp, 0xc
and dword [esp + 0x14], 0xffffffbf
mov word [edi + esi], 0
mov edx, dword [esp + 0x28]
push edx
call fcn.0041de40
mov ecx, dword [ebp + 0x10]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x49275b
mov edx, dword [esp + 0x28]
push edx
push str.no_such_vfs:__s
call fcn.00420b00
add esp, 8
mov esi, 1
mov edx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x18]
push edx
mov dword [ecx], eax
call fcn.0041eb60
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x49275f
mov esi, dword [esp + 0x34]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x14]
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
pop edi
mov dword [edx], eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret