Function at 0x100f17a
Capabilities:
Parse credit card information

Disassembly:
push 0x10
mov eax, 0x101c6a0
call fcn.01012560
mov esi, ecx
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], edx
cmp dword [esi + 0x24], edx
je 0x100f19d
mov dword [esi + 0x24], edx
mov esi, dword [esi + 0x30]
jmp 0x100f1ce
cmp dword [esi + 0x30], edx
je 0x100f1cc
cmp dword [esi + 0xc], edx
je 0x100f1cc
mov eax, dword [esi + 0xc]
movzx edi, word [eax]
mov dword [ebp - 0x14], edi
cmp di, 0x20
je 0x100f1bc
cmp di, 9
jne 0x100f1c4
add eax, 2
mov dword [esi + 0xc], eax
jmp 0x100f1a7
cmp di, dx
jne 0x100f1de
mov dword [esi + 0x30], edx
xor esi, esi
lea ecx, [ebp - 0x10]
call fcn.01007124
mov eax, esi
call fcn.01012611
ret
cmp di, 0x28
jne 0x100f1f5
add dword [esi + 0xc], 2
inc dword [esi + 0x20]
push 0x12
pop eax
mov dword [esi + 0x30], eax
mov esi, eax
jmp 0x100f1ce
cmp di, 0x29
jne 0x100f215
mov eax, dword [esi + 0x20]
add dword [esi + 0xc], 2
lea ecx, [eax - 1]
mov dword [esi + 0x20], ecx
cmp eax, edx
je 0x100f4cc
xor eax, eax
inc eax
jmp 0x100f1ee
cmp di, 0x22
jne 0x100f276
add dword [esi + 0xc], 2
mov eax, dword [esi + 0xc]
movzx ecx, word [eax]
mov dword [ebp - 0x14], eax
jmp 0x100f23d
cmp cx, dx
je 0x100f4cc
inc eax
inc eax
mov ecx, eax
mov dword [esi + 0xc], eax
movzx ecx, word [ecx]
cmp cx, 0x22
jne 0x100f22a
mov edi, eax
sub edi, dword [ebp - 0x14]
add eax, 2
lea ebx, [esi + 0x10]
mov ecx, ebx
sar edi, 1
mov dword [esi + 0xc], eax
call fcn.01007124
push ebx
push edi
push dword [ebp - 0x14]
call fcn.0100a6c1
cmp dword [ebx], 0
je 0x100f4cc
and dword [esi + 0x28], 0
jmp 0x100f57e
push 0x30
pop ebx
cmp di, 0x2d
je 0x100f4d3
cmp di, bx
jb 0x100f292
cmp di, 0x39
jbe 0x100f4d3
push edi
mov ecx, esi
call fcn.01005837
test eax, eax
jne 0x100f3ae
cmp di, 0x25
je 0x100f3ae
cmp di, 0x24
je 0x100f4cc
cmp di, 0x3f
je 0x100f4cc
cmp di, 0x26
je 0x100f4cc
cmp di, 0x21
je 0x100f4cc
mov eax, dword [esi + 0xc]
movzx ecx, word [eax]
add eax, 2
mov dword [esi + 0xc], eax
cmp cx, 0x7e
jne 0x100f2f8
mov dword [esi + 0x2c], 1
movzx ecx, word [eax]
add eax, 2
mov dword [esi + 0xc], eax
jmp 0x100f2fc
and dword [esi + 0x2c], 0
cmp cx, 0x3d
jne 0x100f309
push 8
jmp 0x100f1ed
mov eax, dword [esi + 0xc]
movzx edx, word [eax]
cmp cx, 0x3c
jne 0x100f35b
cmp dx, 0x3d
jne 0x100f324
mov dword [esi + 0x30], 0xd
jmp 0x100f344
cmp dx, 0x3e
jne 0x100f333
mov dword [esi + 0x30], 9
jmp 0x100f344
cmp dx, 0x3c
jne 0x100f34f
or dword [esi + 0x2c], 2
mov dword [esi + 0x30], 0xe
add eax, 2
mov dword [esi + 0xc], eax
jmp 0x100f198
mov dword [esi + 0x30], 0xb
jmp 0x100f198
cmp cx, 0x3e
jne 0x100f3a2
cmp dx, 0x3d
jne 0x100f370
mov dword [esi + 0x30], 0xc
jmp 0x100f344
cmp dx, 0x3e
jne 0x100f383
or dword [esi + 0x2c], 4
mov dword [esi + 0x30], 0x10
jmp 0x100f344
cmp dx, 0x3c
jne 0x100f396
or dword [esi + 0x2c], 6
mov dword [esi + 0x30], 0xf
jmp 0x100f344
mov dword [esi + 0x30], 0xa
jmp 0x100f198
mov dword [esi + 0x30], 0x13
jmp 0x100f198
mov ebx, dword [esi + 0xc]
add dword [esi + 0xc], 2
mov edi, dword [esi + 0xc]
movzx eax, word [edi]
push eax
mov ecx, esi
call fcn.01005837
test eax, eax
jne 0x100f3b1
sub edi, ebx
push 3
sar edi, 1
pop edx
cmp edi, edx
mov dword [ebp - 0x18], edi
jg 0x100f44c
jne 0x100f3e0
movzx ecx, word [ebx + 4]
shl ecx, 0x10
jmp 0x100f3e2
xor ecx, ecx
movzx eax, word [ebx + 2]
movzx edi, word [ebx]
shl eax, 8
or eax, edi
or eax, ecx
and eax, 0xdfdfdf
cmp eax, 0x524f
je 0x100f445
cmp eax, 0x444e41
je 0x100f43e
cmp eax, 0x504d49
je 0x100f437
cmp eax, 0x524f58
je 0x100f430
cmp eax, 0x544f4e
je 0x100f429
cmp eax, 0x565145
jne 0x100f44c
mov dword [esi + 0x30], edx
mov esi, edx
jmp 0x100f1ce
push 7
jmp 0x100f1ed
push 4
jmp 0x100f1ed
push 2
jmp 0x100f1ed
push 6
jmp 0x100f1ed
push 5
jmp 0x100f1ed
lea edi, [esi + 0x10]
mov ecx, edi
call fcn.01007124
and dword [esi + 0x28], 0
lea ecx, [ebp - 0x10]
call fcn.01007124
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x18]
push ebx
call fcn.0100a6c1
cmp dword [ebp - 0x10], 0
je 0x100f4cc
cmp word [ebp - 0x14], 0x25
push edi
push dword [ebp - 0x10]
jne 0x100f487
call fcn.0100dca6
jmp 0x100f48f
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x10]
mov ebx, eax
call fcn.01007124
test ebx, ebx
jl 0x100f4cc
jne 0x100f4b8
mov edi, dword [edi]
lea eax, [esi + 0x18]
push eax
push edi
call fcn.01008ec9
test eax, eax
jne 0x100f57e
jmp 0x100f577
push edi
push 0x10016a8
call fcn.0100c9c3
cmp dword [edi], 0
jne 0x100f57e
push 0x13
jmp 0x100f1ed
movzx ecx, word [ebp - 0x14]
xor eax, eax
cmp word [ebp - 0x14], 0x2d
sete al
sub ecx, ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
neg eax
sbb eax, eax
not eax
and eax, ecx
cdq
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
jmp 0x100f530
cmp di, 0x39
ja 0x100f53f
push 0
push 0xa
push dword [esi + 0x1c]
push dword [esi + 0x18]
call fcn.010124c0
mov ecx, eax
mov eax, edx
mov dword [ebp - 0x18], eax
movzx eax, di
cdq
add ecx, eax
mov eax, dword [ebp - 0x18]
adc eax, edx
sub ecx, ebx
sbb eax, 0
and dword [ebp - 0x18], 0
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
add dword [esi + 0xc], 2
mov eax, dword [esi + 0xc]
movzx edi, word [eax]
cmp di, bx
jae 0x100f4fa
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
xor edx, edx
cmp eax, edx
jl 0x100f4cc
jg 0x100f555
cmp ecx, edx
jb 0x100f4cc
cmp dword [ebp - 0x18], edx
jne 0x100f4cc
cmp dword [ebp - 0x1c], edx
je 0x100f56f
neg ecx
adc eax, edx
neg eax
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
lea ecx, [esi + 0x10]
call fcn.01007124
mov dword [esi + 0x28], 1
push 0x11
jmp 0x100f1ed