Function at 0x1009e220
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1009e687
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x1009e687
cmp eax, 0x29
jne 0x1009e260
cmp dword [esi + 0x10], 0
jne 0x1009e687
test dword [esi + 0x50], 0x10000000
je 0x1009e694
jmp 0x1009e620
cmp eax, 0x2e
jne 0x1009e2b3
push 5
lea ecx, [esi + 0x24]
call fcn.1009e6b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e668
cmp byte [eax], 0x5c
jne 0x1009e46f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e46f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1009e2ab
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1009e46d
cmp dl, 0x29
je 0x1009e46d
test bl, 0x10
jmp 0x1009e45f
cmp eax, 0x5c
jne 0x1009e3d1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e2fa
cmp byte [eax], 0x5c
jne 0x1009e2f7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e2f7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1009e2e4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1009e2f5
cmp dl, 0x29
je 0x1009e2f5
test bl, 0x10
jne 0x1009e2f7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009e2f5
cmp dl, 0x7d
jne 0x1009e2f7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1009d460
test byte [esi + 0x50], 0x80
je 0x1009e3c5
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1009e366
push 4
lea ecx, [esi + 0x24]
call fcn.1009e6b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e35a
cmp byte [eax], 0x5c
jne 0x1009e357
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e357
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1009e344
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1009e355
cmp dl, 0x29
je 0x1009e355
test bl, 0x10
jne 0x1009e357
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009e355
cmp dl, 0x7d
jne 0x1009e357
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1009d460
jmp 0x1009e679
cmp al, 0x42
jne 0x1009e3c5
push 4
lea ecx, [esi + 0x24]
call fcn.1009e6b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e3b9
cmp byte [eax], 0x5c
jne 0x1009e3b6
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e3b6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009e3a3
mov al, byte [ecx]
cmp al, 0x28
je 0x1009e3b4
cmp al, 0x29
je 0x1009e3b4
mov eax, dword [esi]
test dl, 0x10
jne 0x1009e3b6
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009e3b4
cmp dl, 0x7d
jne 0x1009e3b6
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1009d460
jmp 0x1009e679
mov ecx, esi
call fcn.1009f660
jmp 0x1009e66f
cmp eax, 0x5b
jne 0x1009e477
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e418
cmp byte [eax], 0x5c
jne 0x1009e415
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e415
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009e402
mov al, byte [ecx]
cmp al, 0x28
je 0x1009e413
cmp al, 0x29
je 0x1009e413
mov eax, dword [esi]
test dl, 0x10
jne 0x1009e415
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009e413
cmp dl, 0x7d
jne 0x1009e415
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1009d460
mov ecx, esi
call fcn.1009f530
cmp dword [esi + 0x4c], 0x5d
jne 0x1009e6a2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e668
cmp byte [eax], 0x5c
jne 0x1009e46f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e46f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009e45c
mov al, byte [ecx]
cmp al, 0x28
je 0x1009e46d
cmp al, 0x29
je 0x1009e46d
mov eax, dword [esi]
test dl, 0x10
jne 0x1009e46f
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009e46d
cmp dl, 0x7d
jne 0x1009e46f
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1009e668
cmp eax, 0x28
jne 0x1009e52a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e4be
cmp byte [eax], 0x5c
jne 0x1009e4bb
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e4bb
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009e4a8
mov al, byte [ecx]
cmp al, 0x28
je 0x1009e4b9
cmp al, 0x29
je 0x1009e4b9
mov eax, dword [esi]
test dl, 0x10
jne 0x1009e4bb
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009e4b9
cmp dl, 0x7d
jne 0x1009e4bb
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1009d460
mov ecx, esi
call fcn.1009f7b0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1009e694
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009e516
cmp byte [eax], 0x5c
jne 0x1009e513
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009e513
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009e500
mov al, byte [ecx]
cmp al, 0x28
je 0x1009e511
cmp al, 0x29
je 0x1009e511
mov eax, dword [esi]
test dl, 0x10
jne 0x1009e513
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009e511
cmp dl, 0x7d
jne 0x1009e513
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1009d460
test bl, bl
je 0x1009e679
jmp 0x1009e66f
cmp eax, 0x5e
jne 0x1009e580
push 2
lea ecx, [esi + 0x24]
call fcn.1009e6b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1009e574
cmp byte [eax], 0x5c
jne 0x1009e572
inc eax
cmp eax, ecx
je 0x1009e572
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1009e55f
mov dl, byte [eax]
cmp dl, 0x28
je 0x1009e570
cmp dl, 0x29
je 0x1009e570
test cl, 0x10
jne 0x1009e572
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1009e570
cmp cl, 0x7d
jne 0x1009e572
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1009d460
jmp 0x1009e679
cmp eax, 0x24
jne 0x1009e5d6
push 3
lea ecx, [esi + 0x24]
call fcn.1009e6b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1009e5ca
cmp byte [eax], 0x5c
jne 0x1009e5c8
inc eax
cmp eax, ecx
je 0x1009e5c8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1009e5b5
mov dl, byte [eax]
cmp dl, 0x28
je 0x1009e5c6
cmp dl, 0x29
je 0x1009e5c6
test cl, 0x10
jne 0x1009e5c8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1009e5c6
cmp cl, 0x7d
jne 0x1009e5c8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1009d460
jmp 0x1009e679
cmp eax, 0x2a
je 0x1009e68d
cmp eax, 0x2b
je 0x1009e68d
cmp eax, 0x3f
je 0x1009e68d
cmp eax, 0x7b
je 0x1009e68d
cmp eax, 0x7d
jne 0x1009e60e
test dword [esi + 0x50], 0x10000000
je 0x1009e69b
jmp 0x1009e620
cmp eax, 0x5d
jne 0x1009e620
test dword [esi + 0x50], 0x10000000
je 0x1009e6a2
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1009fc40
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1009e668
cmp byte [eax], 0x5c
jne 0x1009e666
inc eax
cmp eax, ecx
je 0x1009e666
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1009e653
mov dl, byte [eax]
cmp dl, 0x28
je 0x1009e664
cmp dl, 0x29
je 0x1009e664
test cl, 0x10
jne 0x1009e666
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1009e664
cmp cl, 0x7d
jne 0x1009e666
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1009d460
mov ecx, esi
call fcn.1009fa10
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1009e236
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.1009d450
push 5
call fcn.1009d450
push 6
call fcn.1009d450
push 4
call fcn.1009d450
int3