Function at 0x10009d60
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 0x1000a22a
cmp eax, 0x7c
je 0x1000a22a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10009da4
cmp dword [esi + 0x10], 0
jne 0x1000a228
test dword [esi + 0x50], 0x10000000
je 0x1000a23a
jmp 0x1000a1b4
cmp eax, 0x2e
jne 0x10009e04
push 5
lea ecx, [esi + 0x24]
call fcn.1000c6a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000a204
cmp word [eax], 0x5c
jne 0x10009dfa
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009dfa
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009de3
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10009df7
cmp edi, 0x29
je 0x10009df7
test bl, 0x10
jne 0x10009dfa
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009df7
cmp edx, 0x7d
jne 0x10009dfa
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x1000a204
cmp eax, 0x5c
jne 0x10009f67
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009e5c
cmp word [eax], 0x5c
jne 0x10009e57
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009e57
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009e40
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10009e54
cmp word [ebp - 4], 0x29
je 0x10009e54
test bl, 0x10
jne 0x10009e57
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009e54
cmp edx, 0x7d
jne 0x10009e57
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cca0
test byte [esi + 0x50], 0x80
je 0x10009f5b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10009ed9
push 4
lea ecx, [esi + 0x24]
call fcn.1000c6a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009ecd
cmp word [eax], 0x5c
jne 0x10009ec8
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009ec8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009eb1
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10009ec5
cmp ebx, 0x29
je 0x10009ec5
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10009ec8
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009ec5
cmp edx, 0x7d
jne 0x10009ec8
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cca0
jmp 0x1000a215
cmp ecx, 0x42
jne 0x10009f5b
push 4
lea ecx, [esi + 0x24]
call fcn.1000c6a0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10009f4f
cmp word [eax], 0x5c
jne 0x10009f4a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10009f48
test byte [esi + 0x50], 8
jne 0x10009f1d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10009f34
cmp ecx, 0x29
je 0x10009f34
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10009f48
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10009f34
mov edx, ecx
cmp ebx, 0x7d
jne 0x10009f48
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1000cca0
jmp 0x1000a215
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cca0
jmp 0x1000a215
mov ecx, esi
call fcn.1000a260
jmp 0x1000a20b
cmp eax, 0x5b
jne 0x1000a078
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10009fc5
cmp word [eax], 0x5c
jne 0x10009fbd
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10009fbb
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10009fa0
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10009fb6
cmp ecx, 0x29
je 0x10009fb6
mov ecx, eax
test bl, 0x10
jne 0x10009fbb
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10009fb6
mov edx, ecx
cmp edi, 0x7d
jne 0x10009fbb
lea eax, [edx + 2]
jmp 0x10009fbd
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1000cca0
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.10009580
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1000a044
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000a03a
cmp word [eax], 0x5c
jne 0x1000a032
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1000a030
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000a015
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1000a02b
cmp ecx, 0x29
je 0x1000a02b
mov ecx, eax
test bl, 0x10
jne 0x1000a030
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1000a02b
mov edx, ecx
cmp edi, 0x7d
jne 0x1000a030
lea eax, [edx + 2]
jmp 0x1000a032
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1000cca0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1000a061
cmp eax, 0x5d
jne 0x1000a061
push eax
mov ecx, ebx
call fcn.10009500
mov ecx, esi
call fcn.1000c710
mov ecx, esi
call fcn.1000ace0
push 4
push 0x5d
mov ecx, esi
call fcn.1000bbe0
jmp 0x1000a20b
cmp eax, 0x28
jne 0x1000a0f6
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000a0ce
cmp word [eax], 0x5c
jne 0x1000a0c9
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x1000a0c7
test byte [esi + 0x50], 8
jne 0x1000a0ab
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x1000a0c2
cmp ecx, 0x29
je 0x1000a0c2
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000a0c7
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x1000a0c2
mov edx, ecx
cmp ebx, 0x7d
jne 0x1000a0c7
lea eax, [edx + 2]
jmp 0x1000a0c9
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000cca0
mov ecx, esi
call fcn.1000ceb0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1000bbe0
test bl, bl
je 0x1000a215
jmp 0x1000a20b
cmp eax, 0x5e
jne 0x1000a10a
push 2
lea ecx, [esi + 0x24]
call fcn.1000c6a0
jmp 0x10009eef
cmp eax, 0x24
jne 0x1000a16a
push 3
lea ecx, [esi + 0x24]
call fcn.1000c6a0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000a15e
cmp word [eax], 0x5c
jne 0x1000a15b
add eax, 2
cmp eax, ecx
je 0x1000a15b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000a146
movzx edx, word [eax]
cmp edx, 0x28
je 0x1000a158
cmp edx, 0x29
je 0x1000a158
test cl, 0x10
jne 0x1000a15b
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1000a158
cmp eax, 0x7d
jne 0x1000a15b
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000cca0
jmp 0x1000a215
cmp eax, 0x2a
je 0x1000a231
cmp eax, 0x2b
je 0x1000a231
cmp eax, 0x3f
je 0x1000a231
cmp eax, 0x7b
je 0x1000a231
cmp eax, 0x7d
jne 0x1000a1a2
test dword [esi + 0x50], 0x10000000
je 0x1000a243
jmp 0x1000a1b4
cmp eax, 0x5d
jne 0x1000a1b4
test dword [esi + 0x50], 0x10000000
je 0x1000a24c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10009330
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1000a204
cmp word [eax], 0x5c
jne 0x1000a201
add eax, 2
cmp eax, ecx
je 0x1000a201
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000a1ec
movzx edx, word [eax]
cmp edx, 0x28
je 0x1000a1fe
cmp edx, 0x29
je 0x1000a1fe
test cl, 0x10
jne 0x1000a201
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1000a1fe
cmp eax, 0x7d
jne 0x1000a201
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000cca0
mov ecx, esi
call fcn.1000c760
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1000a228
cmp eax, 0x7c
jne 0x10009d83
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.1000bbd0
push 5
mov ecx, esi
call fcn.1000bbd0
push 6
mov ecx, esi
call fcn.1000bbd0
push 4
mov ecx, esi
call fcn.1000bbd0
int3