Function at 0x1001f480
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d985b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1001f83f
jmp 0x1001f4b0
cmp eax, 0x7c
je 0x1001f83f
cmp eax, 0x29
jne 0x1001f4d5
cmp dword [esi + 0x10], 0
jne 0x1001f83f
test dword [esi + 0x50], 0x10000000
je 0x1001f851
cmp eax, 0x2e
jne 0x1001f592
push 0x14
call fcn.100b4cc1
mov ecx, eax
add esp, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
test ecx, ecx
je 0x1001f51c
mov dword [ecx], 0x101057e4
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x1001f51e
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1001f541
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f586
cmp byte [eax], 0x5c
jne 0x1001f584
inc eax
cmp eax, ecx
je 0x1001f584
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f571
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001f582
cmp dl, 0x29
je 0x1001f582
test cl, 0x10
jne 0x1001f584
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001f582
cmp cl, 0x7d
jne 0x1001f584
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1001c3e0
jmp 0x1001f82a
cmp eax, 0x5c
jne 0x1001f6af
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f5d7
cmp byte [eax], 0x5c
jne 0x1001f5d5
inc eax
cmp eax, ecx
je 0x1001f5d5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f5c2
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001f5d3
cmp dl, 0x29
je 0x1001f5d3
test cl, 0x10
jne 0x1001f5d5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001f5d3
cmp cl, 0x7d
jne 0x1001f5d5
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1001c3e0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1001f640
cmp byte [esi + 0x48], 0x62
jne 0x1001f640
push 4
lea ecx, [esi + 0x24]
call fcn.1001faa0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f634
cmp byte [eax], 0x5c
jne 0x1001f632
inc eax
cmp eax, ecx
je 0x1001f632
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1001f61f
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001f630
cmp cl, 0x29
je 0x1001f630
test dl, 0x10
jne 0x1001f632
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001f630
cmp cl, 0x7d
jne 0x1001f632
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1001c3e0
jmp 0x1001f831
test eax, eax
je 0x1001f6a3
cmp byte [esi + 0x48], 0x42
jne 0x1001f6a3
push 4
lea ecx, [esi + 0x24]
call fcn.1001faa0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f697
cmp byte [eax], 0x5c
jne 0x1001f695
inc eax
cmp eax, ecx
je 0x1001f695
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1001f682
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001f693
cmp cl, 0x29
je 0x1001f693
test dl, 0x10
jne 0x1001f695
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001f693
cmp cl, 0x7d
jne 0x1001f695
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1001c3e0
jmp 0x1001f831
mov ecx, esi
call fcn.10023a00
jmp 0x1001f82a
cmp eax, 0x5b
jne 0x1001f754
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f6f4
cmp byte [eax], 0x5c
jne 0x1001f6f2
inc eax
cmp eax, ecx
je 0x1001f6f2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f6df
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001f6f0
cmp dl, 0x29
je 0x1001f6f0
test cl, 0x10
jne 0x1001f6f2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001f6f0
cmp cl, 0x7d
jne 0x1001f6f2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1001c3e0
mov ecx, esi
call fcn.10023950
cmp dword [esi + 0x4c], 0x5d
jne 0x1001f858
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f748
cmp byte [eax], 0x5c
jne 0x1001f746
inc eax
cmp eax, ecx
je 0x1001f746
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f733
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001f744
cmp dl, 0x29
je 0x1001f744
test cl, 0x10
jne 0x1001f746
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001f744
cmp cl, 0x7d
jne 0x1001f746
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1001c3e0
jmp 0x1001f82a
cmp eax, 0x28
jne 0x1001f7b6
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001f795
cmp byte [eax], 0x5c
jne 0x1001f793
inc eax
cmp eax, ecx
je 0x1001f793
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001f780
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001f791
cmp dl, 0x29
je 0x1001f791
test cl, 0x10
jne 0x1001f793
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001f791
cmp cl, 0x7d
jne 0x1001f793
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1001c3e0
mov ecx, esi
call fcn.10023ac0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.100238f0
test bl, bl
je 0x1001f831
jmp 0x1001f82a
cmp eax, 0x5e
jne 0x1001f7ce
push 2
lea ecx, [esi + 0x24]
call fcn.1001faa0
mov ecx, esi
call fcn.1001f430
jmp 0x1001f831
cmp eax, 0x24
jne 0x1001f7e6
push 3
lea ecx, [esi + 0x24]
call fcn.1001faa0
mov ecx, esi
call fcn.1001f430
jmp 0x1001f831
cmp eax, 0x2a
je 0x1001f866
cmp eax, 0x2b
je 0x1001f866
cmp eax, 0x3f
je 0x1001f866
cmp eax, 0x7b
je 0x1001f866
cmp eax, 0x7d
jne 0x1001f808
test dword [esi + 0x50], 0x10000000
je 0x1001f85f
cmp eax, 0x5d
jne 0x1001f816
test dword [esi + 0x50], 0x10000000
je 0x1001f858
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10023cb0
mov ecx, esi
call fcn.1001f430
mov ecx, esi
call fcn.10023b80
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1001f4b0
mov al, cl
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push 5
call fcn.100b01ae
push 4
call fcn.100b01ae
push 6
call fcn.100b01ae
push 0xa
call fcn.100b01ae
int3