Function at 0x10009720
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10009bea
cmp eax, 0x7c
je 0x10009bea
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10009764
cmp dword [esi + 0x10], 0
jne 0x10009be8
test dword [esi + 0x50], 0x10000000
je 0x10009bfa
jmp 0x10009b74
cmp eax, 0x2e
jne 0x100097c4
push 5
lea ecx, [esi + 0x24]
call fcn.1000c070
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009bc4
cmp word [eax], 0x5c
jne 0x100097ba
lea edx, [eax + 2]
cmp edx, ecx
je 0x100097ba
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100097a3
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x100097b7
cmp edi, 0x29
je 0x100097b7
test bl, 0x10
jne 0x100097ba
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100097b7
cmp edx, 0x7d
jne 0x100097ba
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10009bc4
cmp eax, 0x5c
jne 0x10009927
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000981c
cmp word [eax], 0x5c
jne 0x10009817
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009817
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009800
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10009814
cmp word [ebp - 4], 0x29
je 0x10009814
test bl, 0x10
jne 0x10009817
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009814
cmp edx, 0x7d
jne 0x10009817
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c670
test byte [esi + 0x50], 0x80
je 0x1000991b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10009899
push 4
lea ecx, [esi + 0x24]
call fcn.1000c070
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000988d
cmp word [eax], 0x5c
jne 0x10009888
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009888
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009871
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10009885
cmp ebx, 0x29
je 0x10009885
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10009888
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009885
cmp edx, 0x7d
jne 0x10009888
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c670
jmp 0x10009bd5
cmp ecx, 0x42
jne 0x1000991b
push 4
lea ecx, [esi + 0x24]
call fcn.1000c070
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x1000990f
cmp word [eax], 0x5c
jne 0x1000990a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10009908
test byte [esi + 0x50], 8
jne 0x100098dd
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x100098f4
cmp ecx, 0x29
je 0x100098f4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10009908
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x100098f4
mov edx, ecx
cmp ebx, 0x7d
jne 0x10009908
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1000c670
jmp 0x10009bd5
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c670
jmp 0x10009bd5
mov ecx, esi
call fcn.10009c20
jmp 0x10009bcb
cmp eax, 0x5b
jne 0x10009a38
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009985
cmp word [eax], 0x5c
jne 0x1000997d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1000997b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009960
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10009976
cmp ecx, 0x29
je 0x10009976
mov ecx, eax
test bl, 0x10
jne 0x1000997b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10009976
mov edx, ecx
cmp edi, 0x7d
jne 0x1000997b
lea eax, [edx + 2]
jmp 0x1000997d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c670
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.10008f50
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10009a04
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100099fa
cmp word [eax], 0x5c
jne 0x100099f2
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x100099f0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100099d5
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x100099eb
cmp ecx, 0x29
je 0x100099eb
mov ecx, eax
test bl, 0x10
jne 0x100099f0
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x100099eb
mov edx, ecx
cmp edi, 0x7d
jne 0x100099f0
lea eax, [edx + 2]
jmp 0x100099f2
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c670
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x10009a21
cmp eax, 0x5d
jne 0x10009a21
push eax
mov ecx, ebx
call fcn.10008ed0
mov ecx, esi
call fcn.1000c0e0
mov ecx, esi
call fcn.1000a6a0
push 4
push 0x5d
mov ecx, esi
call fcn.1000b5a0
jmp 0x10009bcb
cmp eax, 0x28
jne 0x10009ab6
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009a8e
cmp word [eax], 0x5c
jne 0x10009a89
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10009a87
test byte [esi + 0x50], 8
jne 0x10009a6b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10009a82
cmp ecx, 0x29
je 0x10009a82
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10009a87
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10009a82
mov edx, ecx
cmp ebx, 0x7d
jne 0x10009a87
lea eax, [edx + 2]
jmp 0x10009a89
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c670
mov ecx, esi
call fcn.1000c880
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1000b5a0
test bl, bl
je 0x10009bd5
jmp 0x10009bcb
cmp eax, 0x5e
jne 0x10009aca
push 2
lea ecx, [esi + 0x24]
call fcn.1000c070
jmp 0x100098af
cmp eax, 0x24
jne 0x10009b2a
push 3
lea ecx, [esi + 0x24]
call fcn.1000c070
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009b1e
cmp word [eax], 0x5c
jne 0x10009b1b
add eax, 2
cmp eax, ecx
je 0x10009b1b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009b06
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009b18
cmp edx, 0x29
je 0x10009b18
test cl, 0x10
jne 0x10009b1b
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009b18
cmp eax, 0x7d
jne 0x10009b1b
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c670
jmp 0x10009bd5
cmp eax, 0x2a
je 0x10009bf1
cmp eax, 0x2b
je 0x10009bf1
cmp eax, 0x3f
je 0x10009bf1
cmp eax, 0x7b
je 0x10009bf1
cmp eax, 0x7d
jne 0x10009b62
test dword [esi + 0x50], 0x10000000
je 0x10009c03
jmp 0x10009b74
cmp eax, 0x5d
jne 0x10009b74
test dword [esi + 0x50], 0x10000000
je 0x10009c0c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10008d00
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10009bc4
cmp word [eax], 0x5c
jne 0x10009bc1
add eax, 2
cmp eax, ecx
je 0x10009bc1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009bac
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009bbe
cmp edx, 0x29
je 0x10009bbe
test cl, 0x10
jne 0x10009bc1
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009bbe
cmp eax, 0x7d
jne 0x10009bc1
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c670
mov ecx, esi
call fcn.1000c130
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10009be8
cmp eax, 0x7c
jne 0x10009743
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.1000b590
push 5
mov ecx, esi
call fcn.1000b590
push 6
mov ecx, esi
call fcn.1000b590
push 4
mov ecx, esi
call fcn.1000b590
int3