Function at 0x10009880
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 0x10009d4a
cmp eax, 0x7c
je 0x10009d4a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x100098c4
cmp dword [esi + 0x10], 0
jne 0x10009d48
test dword [esi + 0x50], 0x10000000
je 0x10009d5a
jmp 0x10009cd4
cmp eax, 0x2e
jne 0x10009924
push 5
lea ecx, [esi + 0x24]
call fcn.1000c1d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009d24
cmp word [eax], 0x5c
jne 0x1000991a
lea edx, [eax + 2]
cmp edx, ecx
je 0x1000991a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009903
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10009917
cmp edi, 0x29
je 0x10009917
test bl, 0x10
jne 0x1000991a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009917
cmp edx, 0x7d
jne 0x1000991a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10009d24
cmp eax, 0x5c
jne 0x10009a87
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000997c
cmp word [eax], 0x5c
jne 0x10009977
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009977
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009960
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10009974
cmp word [ebp - 4], 0x29
je 0x10009974
test bl, 0x10
jne 0x10009977
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009974
cmp edx, 0x7d
jne 0x10009977
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c7d0
test byte [esi + 0x50], 0x80
je 0x10009a7b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x100099f9
push 4
lea ecx, [esi + 0x24]
call fcn.1000c1d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100099ed
cmp word [eax], 0x5c
jne 0x100099e8
lea edx, [eax + 2]
cmp edx, ecx
je 0x100099e8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100099d1
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x100099e5
cmp ebx, 0x29
je 0x100099e5
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100099e8
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100099e5
cmp edx, 0x7d
jne 0x100099e8
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c7d0
jmp 0x10009d35
cmp ecx, 0x42
jne 0x10009a7b
push 4
lea ecx, [esi + 0x24]
call fcn.1000c1d0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10009a6f
cmp word [eax], 0x5c
jne 0x10009a6a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10009a68
test byte [esi + 0x50], 8
jne 0x10009a3d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10009a54
cmp ecx, 0x29
je 0x10009a54
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10009a68
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10009a54
mov edx, ecx
cmp ebx, 0x7d
jne 0x10009a68
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1000c7d0
jmp 0x10009d35
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c7d0
jmp 0x10009d35
mov ecx, esi
call fcn.10009d80
jmp 0x10009d2b
cmp eax, 0x5b
jne 0x10009b98
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009ae5
cmp word [eax], 0x5c
jne 0x10009add
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10009adb
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009ac0
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10009ad6
cmp ecx, 0x29
je 0x10009ad6
mov ecx, eax
test bl, 0x10
jne 0x10009adb
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10009ad6
mov edx, ecx
cmp edi, 0x7d
jne 0x10009adb
lea eax, [edx + 2]
jmp 0x10009add
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c7d0
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.100090b0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10009b64
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009b5a
cmp word [eax], 0x5c
jne 0x10009b52
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10009b50
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009b35
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10009b4b
cmp ecx, 0x29
je 0x10009b4b
mov ecx, eax
test bl, 0x10
jne 0x10009b50
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10009b4b
mov edx, ecx
cmp edi, 0x7d
jne 0x10009b50
lea eax, [edx + 2]
jmp 0x10009b52
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c7d0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x10009b81
cmp eax, 0x5d
jne 0x10009b81
push eax
mov ecx, ebx
call fcn.10009030
mov ecx, esi
call fcn.1000c240
mov ecx, esi
call fcn.1000a800
push 4
push 0x5d
mov ecx, esi
call fcn.1000b700
jmp 0x10009d2b
cmp eax, 0x28
jne 0x10009c16
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009bee
cmp word [eax], 0x5c
jne 0x10009be9
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10009be7
test byte [esi + 0x50], 8
jne 0x10009bcb
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10009be2
cmp ecx, 0x29
je 0x10009be2
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10009be7
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10009be2
mov edx, ecx
cmp ebx, 0x7d
jne 0x10009be7
lea eax, [edx + 2]
jmp 0x10009be9
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c7d0
mov ecx, esi
call fcn.1000c9e0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1000b700
test bl, bl
je 0x10009d35
jmp 0x10009d2b
cmp eax, 0x5e
jne 0x10009c2a
push 2
lea ecx, [esi + 0x24]
call fcn.1000c1d0
jmp 0x10009a0f
cmp eax, 0x24
jne 0x10009c8a
push 3
lea ecx, [esi + 0x24]
call fcn.1000c1d0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009c7e
cmp word [eax], 0x5c
jne 0x10009c7b
add eax, 2
cmp eax, ecx
je 0x10009c7b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009c66
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009c78
cmp edx, 0x29
je 0x10009c78
test cl, 0x10
jne 0x10009c7b
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009c78
cmp eax, 0x7d
jne 0x10009c7b
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c7d0
jmp 0x10009d35
cmp eax, 0x2a
je 0x10009d51
cmp eax, 0x2b
je 0x10009d51
cmp eax, 0x3f
je 0x10009d51
cmp eax, 0x7b
je 0x10009d51
cmp eax, 0x7d
jne 0x10009cc2
test dword [esi + 0x50], 0x10000000
je 0x10009d63
jmp 0x10009cd4
cmp eax, 0x5d
jne 0x10009cd4
test dword [esi + 0x50], 0x10000000
je 0x10009d6c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10008e60
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10009d24
cmp word [eax], 0x5c
jne 0x10009d21
add eax, 2
cmp eax, ecx
je 0x10009d21
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009d0c
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009d1e
cmp edx, 0x29
je 0x10009d1e
test cl, 0x10
jne 0x10009d21
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009d1e
cmp eax, 0x7d
jne 0x10009d21
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c7d0
mov ecx, esi
call fcn.1000c290
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10009d48
cmp eax, 0x7c
jne 0x100098a3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.1000b6f0
push 5
mov ecx, esi
call fcn.1000b6f0
push 6
mov ecx, esi
call fcn.1000b6f0
push 4
mov ecx, esi
call fcn.1000b6f0
int3