Function at 0x10097910
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 0x1009793e
xor esi, esi
jmp 0x10097950
cmp byte [edi], cl
je 0x10097947
inc eax
cmp byte [eax], cl
jne 0x10097942
sub eax, edi
and eax, 0x3fffffff
mov esi, eax
test dl, 0x40
jne 0x10097961
cmp dword [0x101f0e74], ecx
je 0x10097e19
cmp esi, 5
jl 0x10097e19
cmp dword [edi], 0x656c6966
jne 0x10097e19
cmp byte [edi + 4], 0x3a
jne 0x10097e19
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 0x100979ba
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 0x10097999
cmp eax, esi
mov esi, dword [esp + 0x24]
jge 0x100979cd
xor edx, edx
cmp byte [eax + edi], 0x26
sete dl
add esi, edx
add ebx, ecx
add esi, ebx
call fcn.100957a0
test eax, eax
jne 0x100979f3
test esi, esi
jle 0x100979f3
mov eax, esi
cdq
push edx
push eax
call fcn.10025a00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100979ff
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 0x10097a77
cmp byte [edi + 6], dl
jne 0x10097a77
mov al, byte [edi + 7]
lea ecx, [edi + 7]
mov esi, 7
mov dword [esp + 0x30], ecx
test al, al
je 0x10097a77
cmp al, dl
je 0x10097a30
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x10097a23
cmp esi, 7
je 0x10097a77
cmp esi, 0x10
jne 0x10097a60
lea eax, [esi - 7]
mov edx, str.localhost
mov ebx, dword [edx]
cmp ebx, dword [ecx]
jne 0x10097a5c
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x10097a42
mov al, byte [ecx]
cmp al, byte [edx]
je 0x10097a77
mov ecx, dword [esp + 0x30]
push ecx
add esi, 0xfffffff9
push esi
push str.invalid_uri_authority:__.s
call fcn.10027cb0
add esp, 0xc
jmp 0x10097e8a
mov al, byte [esi + edi]
xor edx, edx
mov dword [esp + 0x1c], edx
test al, al
je 0x10097be9
cmp al, 0x23
je 0x10097bd5
inc esi
cmp al, 0x25
jne 0x10097b4b
mov cl, byte [esi + edi]
movzx ebx, cl
test byte [ebx + 0x101d1408], 8
je 0x10097b4b
movzx ebx, byte [esi + edi + 1]
test byte [ebx + 0x101d1408], 8
je 0x10097b4b
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 0x10097bba
mov al, byte [esi + edi]
test al, al
je 0x10097bca
cmp al, 0x23
je 0x10097bca
test edx, edx
jne 0x10097b21
cmp al, 0x3f
jmp 0x10097b37
cmp edx, 1
jne 0x10097b30
cmp al, 0x3d
je 0x10097bca
jmp 0x10097b35
cmp edx, 2
jne 0x10097b3d
cmp al, 0x26
je 0x10097bca
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x10097b11
jmp 0x10097bca
cmp edx, 1
jne 0x10097b9c
cmp al, 0x26
je 0x10097b58
cmp al, 0x3d
jne 0x10097bba
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
cmp byte [ebx + ecx - 1], 0
jne 0x10097b86
mov al, byte [esi + edi]
test al, al
je 0x10097bca
mov edi, edi
cmp al, 0x23
je 0x10097bca
cmp byte [esi + edi - 1], 0x26
je 0x10097bca
mov al, byte [esi + edi + 1]
inc esi
test al, al
jne 0x10097b70
jmp 0x10097bca
cmp al, 0x26
jne 0x10097b95
mov byte [ebx + ecx], 0
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x10097bb8
mov edx, 2
jmp 0x10097bb4
test edx, edx
jne 0x10097ba6
cmp al, 0x3f
je 0x10097baf
jmp 0x10097bba
cmp edx, 2
jne 0x10097bba
cmp al, 0x26
jne 0x10097bba
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 0x10097a88
cmp edx, 1
jne 0x10097be9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov byte [ecx + eax], 0
inc eax
jmp 0x10097bed
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov word [ecx + eax], 0
cmp byte [ecx], 0
mov eax, ecx
je 0x10097c06
mov edi, edi
inc eax
cmp byte [eax], 0
jne 0x10097c00
sub eax, ecx
and eax, 0x3fffffff
cmp byte [eax + ecx + 1], 0
lea edx, [eax + ecx + 1]
je 0x10097e62
lea esp, [esp]
mov eax, edx
inc eax
cmp byte [eax], 0
jne 0x10097c22
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 0x10097c45
mov dword [esp + 0x18], esi
jmp 0x10097c62
cmp byte [ebx], 0
je 0x10097c56
lea ebx, [ebx]
inc ecx
cmp byte [ecx], 0
jne 0x10097c50
sub ecx, ebx
and ecx, 0x3fffffff
mov dword [esp + 0x18], ecx
cmp eax, 3
jne 0x10097c8d
cmp byte [edx], 0x76
jne 0x10097dea
cmp byte [edx + 1], 0x66
jne 0x10097dea
cmp byte [edx + 2], 0x73
jne 0x10097dea
mov dword [esp + 0x28], ebx
jmp 0x10097dea
cmp eax, 5
jne 0x10097cc0
cmp dword [edx], 0x68636163
jne 0x10097dea
cmp byte [edx + 4], 0x65
jne 0x10097dea
mov eax, 0x60000
mov dword [esp + 0x30], eax
mov edi, 0x101f1e04
mov dword [esp + 0x24], str.cache
jmp 0x10097cf3
cmp eax, 4
jne 0x10097dea
cmp dword [edx], 0x65646f6d
jne 0x10097dea
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], 0x87
mov edi, 0x101f1e1c
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 0x10097da4
mov eax, ecx
test ecx, ecx
je 0x10097d1d
cmp byte [ecx], 0
je 0x10097d16
inc eax
cmp byte [eax], 0
jne 0x10097d10
sub eax, ecx
and eax, 0x3fffffff
cmp dword [esp + 0x18], eax
jne 0x10097d8f
mov esi, dword [esp + 0x18]
mov edx, ebx
cmp esi, 4
jb 0x10097d44
mov edi, edi
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x10097d48
sub esi, 4
add ecx, 4
add edx, 4
cmp esi, 4
jae 0x10097d30
test esi, esi
je 0x10097dc0
movzx eax, byte [edx]
movzx ebx, byte [ecx]
sub eax, ebx
jne 0x10097d83
cmp esi, 1
jbe 0x10097dbc
movzx eax, byte [edx + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x10097d83
cmp esi, 2
jbe 0x10097dbc
movzx eax, byte [edx + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x10097d83
cmp esi, 3
jbe 0x10097dbc
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 0x10097dc0
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + eax*8 + 8]
inc eax
mov dword [esp + 0x20], eax
test ecx, ecx
jne 0x10097d05
mov eax, dword [esp + 0x24]
push ebx
push eax
push str.no_such__s_mode:__s
call fcn.10027cb0
add esp, 0xc
jmp 0x10097e8a
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [edi + edx*8 + 4]
test eax, eax
je 0x10097da4
mov ecx, eax
and ecx, 0xffffff7f
cmp ecx, dword [esp + 0x2c]
jg 0x10097dff
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 0x10097c20
jmp 0x10097e62
mov edx, dword [esp + 0x24]
push ebx
push edx
push str._s_mode_not_allowed:__s
call fcn.10027cb0
add esp, 0xc
mov esi, 3
jmp 0x10097e8f
lea ebx, [esi + 2]
call fcn.100957a0
test eax, eax
jne 0x100979f3
test ebx, ebx
jle 0x100979f3
mov eax, ebx
cdq
push edx
push eax
call fcn.10025a00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x100979f3
push esi
push edi
mov edi, eax
push edi
call sub.MSVCR100.dll_memcpy
add esp, 0xc
and dword [esp + 0x14], 0xffffffbf
mov word [edi + esi], 0
mov edx, dword [esp + 0x28]
push edx
call fcn.10025010
mov ecx, dword [ebp + 0x10]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x10097eab
mov edx, dword [esp + 0x28]
push edx
push str.no_such_vfs:__s
call fcn.10027cb0
add esp, 8
mov esi, 1
mov edx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x18]
push edx
mov dword [ecx], eax
call fcn.10025d60
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x10097eaf
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