Function at 0x10008e20
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1000932e
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x1000932c
cmp eax, 0x29
jne 0x10008e60
cmp dword [esi + 0x10], 0
jne 0x1000932c
test dword [esi + 0x50], 0x10000000
je 0x1000933b
jmp 0x100092bd
cmp eax, 0x2e
jne 0x10008ed2
push 5
lea ecx, [esi + 0x24]
call fcn.1000ba90
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000930d
cmp word [eax], 0x5c
jne 0x10008ec8
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10008ec6
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10008ea3
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10008eb9
cmp ecx, 0x29
je 0x10008eb9
mov ecx, eax
test bl, 0x10
jne 0x10008ec6
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10008eb9
mov edx, ecx
cmp edi, 0x7d
jne 0x10008ec6
lea eax, [edx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x1000930d
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x1000930d
cmp eax, 0x5c
jne 0x10009037
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10008f2c
cmp word [eax], 0x5c
jne 0x10008f27
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10008f25
test byte [esi + 0x50], 8
jne 0x10008f09
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10008f20
cmp ecx, 0x29
je 0x10008f20
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10008f25
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10008f20
mov edx, ecx
cmp ebx, 0x7d
jne 0x10008f25
lea eax, [edx + 2]
jmp 0x10008f27
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c560
test byte [esi + 0x50], 0x80
je 0x1000902b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10008fbe
push 4
lea ecx, [esi + 0x24]
call fcn.1000ba90
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10008fb2
cmp word [eax], 0x5c
jne 0x10008fad
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10008fab
test byte [esi + 0x50], 8
jne 0x10008f80
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10008f97
cmp ecx, 0x29
je 0x10008f97
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10008fab
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10008f97
mov edx, ecx
cmp ebx, 0x7d
jne 0x10008fab
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1000c560
jmp 0x1000931e
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c560
jmp 0x1000931e
cmp ecx, 0x42
jne 0x1000902b
push 4
lea ecx, [esi + 0x24]
call fcn.1000ba90
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000901f
cmp word [eax], 0x5c
jne 0x1000901a
lea ebx, [eax + 2]
cmp ebx, ecx
je 0x1000901a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009003
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x28
je 0x10009017
cmp edx, 0x29
je 0x10009017
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000901a
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009017
cmp edx, 0x7d
jne 0x1000901a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c560
jmp 0x1000931e
mov ecx, esi
call fcn.10009360
jmp 0x10009314
cmp eax, 0x5b
jne 0x10009132
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009088
cmp word [eax], 0x5c
jne 0x10009083
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009083
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000906c
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10009080
cmp edi, 0x29
je 0x10009080
test bl, 0x10
jne 0x10009083
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10009080
cmp edx, 0x7d
jne 0x10009083
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c560
lea edi, [esi + 0x24]
mov ecx, edi
call fcn.10008690
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x100090fe
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100090f4
cmp word [eax], 0x5c
jne 0x100090ec
lea edx, [eax + 2]
cmp edx, ecx
je 0x100090ec
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100090d5
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x100090e9
cmp edi, 0x29
je 0x100090e9
test bl, 0x10
jne 0x100090ec
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100090e9
cmp edx, 0x7d
jne 0x100090ec
lea eax, [ecx + 2]
add eax, 2
lea edi, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c560
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1000911b
cmp eax, 0x5d
jne 0x1000911b
push eax
mov ecx, edi
call fcn.10008610
mov ecx, esi
call fcn.1000bb00
mov ecx, esi
call fcn.10009dd0
push 4
push 0x5d
mov ecx, esi
call fcn.1000ad60
jmp 0x10009314
cmp eax, 0x28
jne 0x100091aa
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009182
cmp word [eax], 0x5c
jne 0x1000917d
lea edx, [eax + 2]
cmp edx, ecx
je 0x1000917d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10009166
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x1000917a
cmp ebx, 0x29
je 0x1000917a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000917d
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1000917a
cmp edx, 0x7d
jne 0x1000917d
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c560
mov ecx, esi
call fcn.1000c780
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1000ad60
test bl, bl
je 0x1000931e
jmp 0x10009314
cmp eax, 0x5e
jne 0x10009213
push 2
lea ecx, [esi + 0x24]
call fcn.1000ba90
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009207
cmp word [eax], 0x5c
jne 0x10009202
lea edx, [eax + 2]
cmp edx, ecx
je 0x10009202
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100091eb
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x100091ff
cmp ebx, 0x29
je 0x100091ff
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10009202
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100091ff
cmp edx, 0x7d
jne 0x10009202
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1000c560
jmp 0x1000931e
cmp eax, 0x24
jne 0x10009273
push 3
lea ecx, [esi + 0x24]
call fcn.1000ba90
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10009267
cmp word [eax], 0x5c
jne 0x10009264
add eax, 2
cmp eax, ecx
je 0x10009264
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000924f
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009261
cmp edx, 0x29
je 0x10009261
test cl, 0x10
jne 0x10009264
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009261
cmp eax, 0x7d
jne 0x10009264
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c560
jmp 0x1000931e
cmp eax, 0x2a
je 0x10009332
cmp eax, 0x2b
je 0x10009332
cmp eax, 0x3f
je 0x10009332
cmp eax, 0x7b
je 0x10009332
cmp eax, 0x7d
jne 0x100092ab
test dword [esi + 0x50], 0x10000000
je 0x10009344
jmp 0x100092bd
cmp eax, 0x5d
jne 0x100092bd
test dword [esi + 0x50], 0x10000000
je 0x1000934d
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10008440
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1000930d
cmp word [eax], 0x5c
jne 0x1000930a
add eax, 2
cmp eax, ecx
je 0x1000930a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100092f5
movzx edx, word [eax]
cmp edx, 0x28
je 0x10009307
cmp edx, 0x29
je 0x10009307
test cl, 0x10
jne 0x1000930a
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10009307
cmp eax, 0x7d
jne 0x1000930a
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1000c560
mov ecx, esi
call fcn.1000bf20
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10008e36
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.1000ad50
push 5
mov ecx, esi
call fcn.1000ad50
push 6
mov ecx, esi
call fcn.1000ad50
push 4
mov ecx, esi
call fcn.1000ad50
int3