Function at 0x1007bd50
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov eax, ecx
mov ebx, edx
mov edx, dword [ebp + 0x18]
push esi
mov esi, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [edx]
mov dword [ebp - 4], esi
cmp byte [esi], 0x28
mov ecx, eax
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], 0
jne 0x1007bedf
mov al, byte [esi + 1]
cmp al, 0x2a
jne 0x1007bd97
add esi, 2
mov dword [ebp - 4], esi
jmp 0x1007bedf
cmp al, 0x3f
je 0x1007bdb7
mov eax, ecx
inc eax
cmp dword [ebp + 8], 0
mov dword [edx], eax
jne 0x1007bdae
cmp eax, edi
je 0x1007c11e
inc esi
mov dword [ebp - 4], esi
jmp 0x1007bedf
mov al, byte [esi + 2]
lea ecx, [esi + 2]
cmp al, 0x7c
jne 0x1007bdd3
add esi, 3
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], 1
jmp 0x1007bedc
cmp al, 0x23
jne 0x1007be08
add esi, 3
mov dword [ebp - 4], esi
mov al, byte [esi]
test al, al
je 0x1007c116
cmp al, 0x29
je 0x1007c116
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
test al, al
jne 0x1007bde7
mov eax, dword [ebp - 0x14]
pop edi
mov dword [eax], esi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, ecx
mov dword [ebp - 4], esi
cmp al, 0x28
jne 0x1007be4d
cmp byte [esi + 1], 0x3f
je 0x1007bedc
mov al, byte [esi]
test al, al
je 0x1007bedc
cmp al, 0x29
je 0x1007be38
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
test al, al
jne 0x1007be25
jmp 0x1007bedc
cmp byte [esi], 0
mov ecx, dword [ebp - 8]
je 0x1007bedf
inc esi
mov dword [ebp - 4], esi
jmp 0x1007bedf
cmp byte [esi], 0x50
jne 0x1007be56
inc esi
mov dword [ebp - 4], esi
mov cl, byte [esi]
cmp cl, 0x3c
jne 0x1007be68
mov al, byte [esi + 1]
cmp al, 0x21
je 0x1007be68
cmp al, 0x3d
jne 0x1007be6d
cmp cl, 0x27
jne 0x1007bedc
mov eax, dword [ebp - 0xc]
inc eax
cmp dword [ebp + 8], 0
mov dword [edx], eax
jne 0x1007be81
cmp eax, edi
je 0x1007c11e
movzx ecx, cl
inc esi
mov eax, 0x3e
cmp ecx, 0x3c
cmove ecx, eax
mov dword [ebp - 4], esi
movzx eax, byte [esi]
mov edx, esi
cmp eax, ecx
je 0x1007beab
lea esp, [esp]
inc esi
mov dword [ebp - 4], esi
movzx eax, byte [esi]
cmp eax, ecx
jne 0x1007bea0
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x1007bed9
mov eax, esi
sub eax, edx
cmp edi, eax
jne 0x1007bed9
push edi
push edx
push ecx
call dword [0x100a1194]
add esp, 0xc
test eax, eax
jne 0x1007bed6
mov eax, dword [ebp + 0x18]
pop edi
mov eax, dword [eax]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
cmp esi, dword [ebx + 0x1c]
jae 0x1007c116
mov edi, dword [ebp + 0x14]
jmp 0x1007bef0
mov al, byte [esi]
cmp al, 0x5c
jne 0x1007bf38
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
test al, al
je 0x1007c116
cmp al, 0x51
jne 0x1007bff4
lea esp, [esp]
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
test al, al
je 0x1007c116
cmp al, 0x5c
jne 0x1007bf10
test al, al
je 0x1007c116
inc esi
mov dword [ebp - 4], esi
cmp byte [esi], 0x45
jne 0x1007bf10
jmp 0x1007bff4
cmp al, 0x5b
jne 0x1007c00c
xor edi, edi
mov al, byte [esi + 1]
cmp al, 0x5c
jne 0x1007bf76
add esi, 2
cmp byte [esi], 0x45
jne 0x1007bf56
mov dword [ebp - 4], esi
jmp 0x1007bf42
push 3
push 0x100f0e20
push esi
call dword [0x100a1194]
mov esi, dword [ebp - 4]
add esp, 0xc
test eax, eax
jne 0x1007bf89
add esi, 4
mov dword [ebp - 4], esi
jmp 0x1007bf42
test edi, edi
jne 0x1007bf89
cmp al, 0x5e
jne 0x1007bf89
inc esi
mov edi, 1
mov dword [ebp - 4], esi
jmp 0x1007bf42
cmp byte [esi + 1], 0x5d
lea eax, [esi + 1]
jne 0x1007bf9c
test dword [ebx + 0x50], 0x2000000
cmove esi, eax
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
cmp al, 0x5d
je 0x1007bff1
test al, al
je 0x1007c11b
cmp al, 0x5c
jne 0x1007bfe7
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
test al, al
je 0x1007c116
cmp al, 0x51
jne 0x1007bfe7
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
test al, al
je 0x1007c116
cmp al, 0x5c
jne 0x1007bfc4
test al, al
je 0x1007c116
inc esi
mov dword [ebp - 4], esi
cmp byte [esi], 0x45
jne 0x1007bfc4
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
cmp al, 0x5d
jne 0x1007bfa6
mov edi, dword [ebp + 0x14]
inc esi
mov dword [ebp - 4], esi
cmp esi, dword [ebx + 0x1c]
jae 0x1007c116
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
jmp 0x1007bef0
cmp dword [ebp + 0x10], 0
je 0x1007c0b5
cmp al, 0x23
jne 0x1007c0b5
inc esi
mov dword [ebp - 4], esi
mov cl, byte [esi]
test cl, cl
je 0x1007c116
lea esp, [esp]
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x1007c066
mov ecx, dword [ebx + 0x1c]
cmp esi, ecx
jae 0x1007c084
push edi
lea eax, [ebx + 0x68]
push eax
push ecx
mov ecx, esi
call fcn.100979d0
add esp, 0xc
test eax, eax
je 0x1007c084
mov eax, dword [ebx + 0x68]
dec esi
add esi, eax
mov dword [ebp - 4], esi
cmp byte [esi], 0
je 0x1007c116
jmp 0x1007bff4
mov edx, dword [ebx + 0x68]
mov eax, dword [ebx + 0x1c]
sub eax, edx
cmp esi, eax
ja 0x1007c084
cmp cl, byte [ebx + 0x6c]
jne 0x1007c084
cmp edx, 1
je 0x1007c052
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x6d]
je 0x1007c052
inc esi
mov dword [ebp - 4], esi
test edi, edi
je 0x1007c0a0
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1007c0a0
inc esi
mov dword [ebp - 4], esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
je 0x1007c094
mov cl, byte [esi]
test cl, cl
jne 0x1007c030
mov eax, dword [ebp - 0x14]
pop edi
mov dword [eax], esi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x28
jne 0x1007c0e2
push edx
push edi
push dword [ebp + 0x10]
mov edx, ebx
push dword [ebp + 0xc]
lea ecx, [ebp - 4]
push dword [ebp + 8]
call fcn.1007bd50
add esp, 0x14
test eax, eax
jg 0x1007c11e
mov esi, dword [ebp - 4]
cmp byte [esi], 0
je 0x1007c116
jmp 0x1007bff4
cmp al, 0x29
je 0x1007c10a
cmp al, 0x7c
jne 0x1007bff4
cmp dword [ebp - 0x10], 0
je 0x1007bff4
cmp dword [edx], ecx
mov eax, dword [ebp - 0xc]
cmovg ecx, dword [edx]
mov dword [ebp - 8], ecx
mov dword [edx], eax
jmp 0x1007bff4
cmp dword [ebp - 0x10], 0
je 0x1007c116
cmp dword [edx], ecx
jge 0x1007c116
mov dword [edx], ecx
mov eax, dword [ebp - 0x14]
mov dword [eax], esi
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret