Function at 0x10009710
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 0x10009bda
cmp eax, 0x7c
je 0x10009bda
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10009754
cmp dword [esi + 0x10], 0
jne 0x10009bd8
test dword [esi + 0x50], 0x10000000
je 0x10009bea
jmp 0x10009b64
cmp eax, 0x2e
jne 0x100097b4
push 5
lea ecx, [esi + 0x24]
call fcn.1000c060
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009bb4
cmp word [eax], 0x5c
jne 0x100097aa
lea edx, [eax + 2]
cmp edx, ecx
je 0x100097aa
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009793
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x100097a7
cmp edi, 0x29
je 0x100097a7
test bl, 0x10
jne 0x100097aa
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100097a7
cmp edx, 0x7d
jne 0x100097aa
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10009bb4
cmp eax, 0x5c
jne 0x10009917
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000980c
cmp word [eax], 0x5c
jne 0x10009807
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009807
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100097f0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10009804
cmp word [ebp - 4], 0x29
je 0x10009804
test bl, 0x10
jne 0x10009807
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009804
cmp edx, 0x7d
jne 0x10009807
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c660
test byte [esi + 0x50], 0x80
je 0x1000990b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10009889
push 4
lea ecx, [esi + 0x24]
call fcn.1000c060
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000987d
cmp word [eax], 0x5c
jne 0x10009878
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009878
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009861
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10009875
cmp ebx, 0x29
je 0x10009875
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10009878
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009875
cmp edx, 0x7d
jne 0x10009878
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c660
jmp 0x10009bc5
cmp ecx, 0x42
jne 0x1000990b
push 4
lea ecx, [esi + 0x24]
call fcn.1000c060
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x100098ff
cmp word [eax], 0x5c
jne 0x100098fa
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x100098f8
test byte [esi + 0x50], 8
jne 0x100098cd
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x100098e4
cmp ecx, 0x29
je 0x100098e4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100098f8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x100098e4
mov edx, ecx
cmp ebx, 0x7d
jne 0x100098f8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1000c660
jmp 0x10009bc5
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c660
jmp 0x10009bc5
mov ecx, esi
call fcn.10009c10
jmp 0x10009bbb
cmp eax, 0x5b
jne 0x10009a28
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009975
cmp word [eax], 0x5c
jne 0x1000996d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1000996b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009950
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10009966
cmp ecx, 0x29
je 0x10009966
mov ecx, eax
test bl, 0x10
jne 0x1000996b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10009966
mov edx, ecx
cmp edi, 0x7d
jne 0x1000996b
lea eax, [edx + 2]
jmp 0x1000996d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c660
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.10008f50
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x100099f4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100099ea
cmp word [eax], 0x5c
jne 0x100099e2
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x100099e0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100099c5
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x100099db
cmp ecx, 0x29
je 0x100099db
mov ecx, eax
test bl, 0x10
jne 0x100099e0
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x100099db
mov edx, ecx
cmp edi, 0x7d
jne 0x100099e0
lea eax, [edx + 2]
jmp 0x100099e2
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c660
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x10009a11
cmp eax, 0x5d
jne 0x10009a11
push eax
mov ecx, ebx
call fcn.10008ed0
mov ecx, esi
call fcn.1000c0d0
mov ecx, esi
call fcn.1000a690
push 4
push 0x5d
mov ecx, esi
call fcn.1000b590
jmp 0x10009bbb
cmp eax, 0x28
jne 0x10009aa6
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009a7e
cmp word [eax], 0x5c
jne 0x10009a79
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10009a77
test byte [esi + 0x50], 8
jne 0x10009a5b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10009a72
cmp ecx, 0x29
je 0x10009a72
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10009a77
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10009a72
mov edx, ecx
cmp ebx, 0x7d
jne 0x10009a77
lea eax, [edx + 2]
jmp 0x10009a79
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c660
mov ecx, esi
call fcn.1000c870
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1000b590
test bl, bl
je 0x10009bc5
jmp 0x10009bbb
cmp eax, 0x5e
jne 0x10009aba
push 2
lea ecx, [esi + 0x24]
call fcn.1000c060
jmp 0x1000989f
cmp eax, 0x24
jne 0x10009b1a
push 3
lea ecx, [esi + 0x24]
call fcn.1000c060
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009b0e
cmp word [eax], 0x5c
jne 0x10009b0b
add eax, 2
cmp eax, ecx
je 0x10009b0b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009af6
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009b08
cmp edx, 0x29
je 0x10009b08
test cl, 0x10
jne 0x10009b0b
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009b08
cmp eax, 0x7d
jne 0x10009b0b
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c660
jmp 0x10009bc5
cmp eax, 0x2a
je 0x10009be1
cmp eax, 0x2b
je 0x10009be1
cmp eax, 0x3f
je 0x10009be1
cmp eax, 0x7b
je 0x10009be1
cmp eax, 0x7d
jne 0x10009b52
test dword [esi + 0x50], 0x10000000
je 0x10009bf3
jmp 0x10009b64
cmp eax, 0x5d
jne 0x10009b64
test dword [esi + 0x50], 0x10000000
je 0x10009bfc
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 0x10009bb4
cmp word [eax], 0x5c
jne 0x10009bb1
add eax, 2
cmp eax, ecx
je 0x10009bb1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009b9c
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009bae
cmp edx, 0x29
je 0x10009bae
test cl, 0x10
jne 0x10009bb1
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009bae
cmp eax, 0x7d
jne 0x10009bb1
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c660
mov ecx, esi
call fcn.1000c120
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10009bd8
cmp eax, 0x7c
jne 0x10009733
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.1000b580
push 5
mov ecx, esi
call fcn.1000b580
push 6
mov ecx, esi
call fcn.1000b580
push 4
mov ecx, esi
call fcn.1000b580
int3