Function at 0x106e090
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x106e349
cmp eax, 0x7c
je 0x106e349
cmp eax, 0x29
jne 0x106e0d2
cmp dword [esi + 0x10], 0
jne 0x106e349
cmp eax, eax
jne 0x106e0d2
test dword [esi + 0x50], 0x10000000
je 0x106e359
jmp 0x106e230
cmp eax, 0x2e
jne 0x106e0e6
push 5
lea ecx, [esi + 0x24]
call fcn.01070a40
jmp 0x106e263
cmp eax, 0x5c
jne 0x106e142
mov ecx, esi
call fcn.01070ab0
test byte [esi + 0x50], 0x80
je 0x106e136
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x106e115
push 4
lea ecx, [esi + 0x24]
call fcn.01070a40
mov ecx, esi
call fcn.01070ab0
jmp 0x106e33b
cmp al, 0x42
jne 0x106e136
push 4
lea ecx, [esi + 0x24]
call fcn.01070a40
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.01070ab0
jmp 0x106e33b
mov ecx, esi
call fcn.0106e380
jmp 0x106e26a
cmp eax, 0x5b
jne 0x106e1a3
mov ecx, esi
call fcn.01070ab0
lea ecx, [esi + 0x24]
call fcn.0106d6b0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x106e16f
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.01070ab0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x106e18d
cmp eax, 0x5d
jne 0x106e18d
push eax
lea ecx, [esi + 0x24]
call fcn.0106d640
mov ecx, esi
call fcn.01070ab0
mov ecx, esi
call fcn.0106ee40
cmp dword [esi + 0x4c], 0x5d
jne 0x106e362
jmp 0x106e263
cmp eax, 0x28
jne 0x106e1d6
mov ecx, esi
call fcn.01070ab0
mov ecx, esi
call fcn.01071000
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x106e359
mov ecx, esi
call fcn.01070ab0
test bl, bl
je 0x106e33b
jmp 0x106e26a
cmp eax, 0x5e
jne 0x106e1f1
push 2
lea ecx, [esi + 0x24]
call fcn.01070a40
mov ecx, esi
call fcn.01070ab0
jmp 0x106e33b
cmp eax, 0x24
jne 0x106e20c
push 3
lea ecx, [esi + 0x24]
call fcn.01070a40
mov ecx, esi
call fcn.01070ab0
jmp 0x106e33b
cmp eax, 0x2a
je 0x106e350
cmp eax, 0x2b
je 0x106e350
cmp eax, 0x3f
je 0x106e350
cmp eax, 0x7b
je 0x106e350
cmp eax, 0x7d
jne 0x106e244
test dword [esi + 0x50], 0x10000000
je 0x106e36b
jmp 0x106e256
cmp eax, 0x5d
jne 0x106e256
test dword [esi + 0x50], 0x10000000
je 0x106e362
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0106d540
mov ecx, esi
call fcn.01070ab0
mov eax, dword [esi + 0x4c]
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
je 0x106e2fd
cmp eax, 0x2b
jne 0x106e285
lea ebx, [edi + 2]
jmp 0x106e2fd
cmp eax, 0x3f
jne 0x106e28f
lea edi, [eax - 0x3e]
jmp 0x106e2fd
cmp eax, 0x7b
jne 0x106e33b
mov ecx, esi
call fcn.01070ab0
push 0x7fffffff
push 0xa
mov ecx, esi
call fcn.0106f4b0
cmp eax, 0x7fffffff
je 0x106e374
mov eax, dword [esi + 0x4c]
mov ebx, dword [esi + 0x44]
cmp eax, 0x2c
je 0x106e2c7
mov edi, ebx
jmp 0x106e2eb
mov ecx, esi
call fcn.01070ab0
mov eax, dword [esi + 0x4c]
cmp eax, 0x7d
je 0x106e2f4
mov ecx, esi
call fcn.0106f160
test al, al
je 0x106e374
mov edi, dword [esi + 0x44]
mov eax, dword [esi + 0x4c]
cmp eax, 0x7d
jne 0x106e374
cmp edi, 0xffffffff
je 0x106e2fd
cmp edi, ebx
jl 0x106e374
mov eax, dword [esi + 0x28]
mov ecx, esi
or dword [eax + 8], 4
call fcn.01070ab0
test dword [esi + 0x50], 0x400
je 0x106e328
cmp dword [esi + 0x4c], 0x3f
jne 0x106e328
mov ecx, esi
mov byte [esp + 0xc], 0
call fcn.01070ab0
jmp 0x106e32d
mov byte [esp + 0xc], 1
push dword [esp + 0xc]
lea ecx, [esi + 0x24]
push edi
push ebx
call fcn.0106dd70
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x106e0a4
pop edi
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 0xa
mov ecx, esi
call fcn.01070300
push 5
mov ecx, esi
call fcn.01070300
push 4
mov ecx, esi
call fcn.01070300
push 6
mov ecx, esi
call fcn.01070300
push 7
mov ecx, esi
call fcn.01070300
int3