Function at 0x10018c00
Capabilities:
Parse credit card information

Disassembly:
push esi
push edi
mov esi, ecx
xor edi, edi
xor al, al
cmp dword [esi + 0x40], 0xffffffff
je 0x10018f12
push ebx
mov ecx, dword [esi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x10018f11
cmp ecx, 0x29
jne 0x10018c46
cmp dword [esi + 0x10], edi
jne 0x10018f11
test dword [esi + 0x44], edx
jne 0x10018c46
push 5
call fcn.1001eec7
add esp, 4
jmp 0x10018efe
cmp ecx, 0x2e
jne 0x10018ce3
push 0x14
call fcn.1001fffa
add esp, 4
cmp eax, edi
je 0x10018c75
mov dword [eax], 0x100350ac
mov dword [eax + 4], 5
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
jmp 0x10018c77
xor eax, eax
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, edi
je 0x10018c93
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018cd7
cmp byte [eax], 0x5c
jne 0x10018cd5
inc eax
cmp eax, ecx
je 0x10018cc1
test byte [esi + 0x44], 8
jne 0x10018cc1
mov cl, byte [eax]
cmp cl, 0x28
je 0x10018cd3
cmp cl, 0x29
je 0x10018cd3
test byte [esi + 0x44], 0x10
jne 0x10018cd5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018cd3
cmp cl, 0x7d
jne 0x10018cd5
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000d0f0
jmp 0x10018efe
cmp ecx, 0x5c
jne 0x10018df9
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018d27
cmp byte [eax], 0x5c
jne 0x10018d25
inc eax
cmp eax, ecx
je 0x10018d11
test byte [esi + 0x44], 8
jne 0x10018d11
mov cl, byte [eax]
cmp cl, 0x28
je 0x10018d23
cmp cl, 0x29
je 0x10018d23
test byte [esi + 0x44], 0x10
jne 0x10018d25
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018d23
cmp cl, 0x7d
jne 0x10018d25
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000d0f0
mov eax, dword [esi + 0x44]
and eax, 0x80
je 0x10018d8d
cmp byte [esi + 0x3e], 0x62
jne 0x10018d8d
lea ecx, [esi + 0x18]
call fcn.1000b820
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018d81
cmp byte [eax], 0x5c
jne 0x10018d7f
inc eax
cmp eax, ecx
je 0x10018d6b
test byte [esi + 0x44], 8
jne 0x10018d6b
mov cl, byte [eax]
cmp cl, 0x28
je 0x10018d7d
cmp cl, 0x29
je 0x10018d7d
test byte [esi + 0x44], 0x10
jne 0x10018d7f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018d7d
cmp cl, 0x7d
jne 0x10018d7f
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000d0f0
jmp 0x10018f05
cmp eax, edi
je 0x10018ded
cmp byte [esi + 0x3e], 0x42
jne 0x10018ded
lea ecx, [esi + 0x18]
call fcn.1000b820
mov eax, dword [esi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018de1
cmp byte [eax], 0x5c
jne 0x10018ddf
inc eax
cmp eax, ecx
je 0x10018dcb
test byte [esi + 0x44], 8
jne 0x10018dcb
mov cl, byte [eax]
cmp cl, 0x28
je 0x10018ddd
cmp cl, 0x29
je 0x10018ddd
test byte [esi + 0x44], 0x10
jne 0x10018ddf
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018ddd
cmp cl, 0x7d
jne 0x10018ddf
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000d0f0
jmp 0x10018f05
mov ecx, esi
call fcn.10017870
jmp 0x10018efe
cmp ecx, 0x5b
jne 0x10018e9f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018e3d
cmp byte [eax], 0x5c
jne 0x10018e3b
inc eax
cmp eax, ecx
je 0x10018e27
test byte [esi + 0x44], 8
jne 0x10018e27
mov cl, byte [eax]
cmp cl, 0x28
je 0x10018e39
cmp cl, 0x29
je 0x10018e39
test byte [esi + 0x44], 0x10
jne 0x10018e3b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018e39
cmp cl, 0x7d
jne 0x10018e3b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000d0f0
mov ecx, esi
call fcn.100189c0
cmp dword [esi + 0x40], 0x5d
je 0x10018e5b
push 4
call fcn.1001eec7
add esp, 4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018e96
cmp byte [eax], 0x5c
jne 0x10018e94
inc eax
cmp eax, ecx
je 0x10018e80
test byte [esi + 0x44], 8
jne 0x10018e80
mov cl, byte [eax]
cmp cl, 0x28
je 0x10018e92
cmp cl, 0x29
je 0x10018e92
test byte [esi + 0x44], 0x10
jne 0x10018e94
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018e92
cmp cl, 0x7d
jne 0x10018e94
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000d0f0
jmp 0x10018efe
cmp ecx, 0x28
jne 0x10018f15
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018edf
cmp byte [eax], 0x5c
jne 0x10018edd
inc eax
cmp eax, ecx
je 0x10018ec9
test byte [esi + 0x44], 8
jne 0x10018ec9
mov cl, byte [eax]
cmp cl, 0x28
je 0x10018edb
cmp cl, 0x29
je 0x10018edb
test byte [esi + 0x44], 0x10
jne 0x10018edd
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018edb
cmp cl, 0x7d
jne 0x10018edd
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000d0f0
mov ecx, esi
call fcn.1000d5a0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1000d530
test bl, bl
je 0x10018f05
mov ecx, esi
call fcn.10017920
cmp dword [esi + 0x40], 0xffffffff
mov al, 1
jne 0x10018c13
pop ebx
pop edi
pop esi
ret
cmp ecx, 0x5e
jne 0x10018f2b
lea ecx, [esi + 0x18]
call fcn.1000b760
mov ecx, esi
call fcn.1000d3b0
jmp 0x10018f05
cmp ecx, 0x24
jne 0x10018f41
lea ecx, [esi + 0x18]
call fcn.1000b7c0
mov ecx, esi
call fcn.1000d3b0
jmp 0x10018f05
cmp ecx, 0x2a
je 0x10018f9d
cmp ecx, 0x2b
je 0x10018f9d
cmp ecx, 0x3f
je 0x10018f9d
cmp ecx, 0x7b
je 0x10018f9d
cmp ecx, 0x7d
jne 0x10018f6b
test dword [esi + 0x44], edx
jne 0x10018f6b
push 6
call fcn.1001eec7
add esp, 4
jmp 0x10018efe
cmp ecx, 0x5d
jne 0x10018f84
test dword [esi + 0x44], edx
jne 0x10018f84
push 4
call fcn.1001eec7
add esp, 4
jmp 0x10018efe
movzx edx, byte [esi + 0x3e]
lea ecx, [esi + 0x18]
push edx
call fcn.10016ed0
mov ecx, esi
call fcn.1000d3b0
jmp 0x10018efe
push 0xa
call fcn.1001eec7
add esp, 4
jmp 0x10018efe