Function at 0x10010300
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1001079e
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x1001079c
cmp eax, 0x29
jne 0x10010340
cmp dword [esi + 0x10], 0
jne 0x1001079c
test dword [esi + 0x50], 0x10000000
je 0x100107ab
jmp 0x10010736
cmp eax, 0x2e
jne 0x100103aa
push 5
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1001077d
cmp byte [eax], 0x5c
jne 0x100103a2
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x100103a0
test byte [esi + 0x50], 8
jne 0x1001037f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10010395
cmp cl, 0x29
je 0x10010395
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100103a0
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10010395
mov edx, ecx
cmp bl, 0x7d
jne 0x100103a0
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1001077d
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1001077d
cmp eax, 0x5c
jne 0x100104f9
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100103ff
cmp byte [eax], 0x5c
jne 0x100103fc
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x100103fa
test byte [esi + 0x50], 8
jne 0x100103df
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x100103f5
cmp cl, 0x29
je 0x100103f5
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100103fa
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x100103f5
mov edx, ecx
cmp bl, 0x7d
jne 0x100103fa
lea eax, [edx + 1]
jmp 0x100103fc
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012f00
test byte [esi + 0x50], 0x80
je 0x100104ed
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x10010486
push 4
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1001047a
cmp byte [eax], 0x5c
jne 0x10010477
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10010475
test byte [esi + 0x50], 8
jne 0x1001044d
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10010463
cmp cl, 0x29
je 0x10010463
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10010475
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10010463
mov edx, ecx
cmp bl, 0x7d
jne 0x10010475
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10012f00
jmp 0x1001078e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012f00
jmp 0x1001078e
cmp al, 0x42
jne 0x100104ed
push 4
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100104e1
cmp byte [eax], 0x5c
jne 0x100104de
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x100104de
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100104c8
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x100104db
cmp dl, 0x29
je 0x100104db
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100104de
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x100104db
cmp dl, 0x7d
jne 0x100104de
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012f00
jmp 0x1001078e
mov ecx, esi
call fcn.100107d0
jmp 0x10010784
cmp eax, 0x5b
jne 0x100105ab
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10010548
cmp byte [eax], 0x5c
jne 0x10010545
lea edx, [eax + 1]
cmp edx, ecx
je 0x10010545
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001052f
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x10010542
cmp bl, 0x29
je 0x10010542
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10010545
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10010542
cmp dl, 0x7d
jne 0x10010545
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012f00
lea ecx, [esi + 0x24]
call fcn.1000fb60
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10010570
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.10012a50
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1001058e
cmp eax, 0x5d
jne 0x1001058e
push eax
lea ecx, [esi + 0x24]
call fcn.1000faf0
mov ecx, esi
call fcn.10012a50
mov ecx, esi
call fcn.100111d0
cmp dword [esi + 0x4c], 0x5d
jne 0x100107bd
mov ecx, esi
call fcn.10012a50
jmp 0x10010784
cmp eax, 0x28
jne 0x10010624
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100105f6
cmp byte [eax], 0x5c
jne 0x100105f3
lea edx, [eax + 1]
cmp edx, ecx
je 0x100105f3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100105dd
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100105f0
cmp bl, 0x29
je 0x100105f0
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100105f3
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100105f0
cmp dl, 0x7d
jne 0x100105f3
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012f00
mov ecx, esi
call fcn.10013100
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x100107ab
mov ecx, esi
call fcn.10012a50
test bl, bl
je 0x1001078e
jmp 0x10010784
cmp eax, 0x5e
jne 0x10010688
push 2
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1001067c
cmp byte [eax], 0x5c
jne 0x10010679
lea edx, [eax + 1]
cmp edx, ecx
je 0x10010679
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10010663
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x10010676
cmp bl, 0x29
je 0x10010676
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10010679
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10010676
cmp dl, 0x7d
jne 0x10010679
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012f00
jmp 0x1001078e
cmp eax, 0x24
jne 0x100106ec
push 3
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100106e0
cmp byte [eax], 0x5c
jne 0x100106dd
lea edx, [eax + 1]
cmp edx, ecx
je 0x100106dd
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100106c7
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100106da
cmp bl, 0x29
je 0x100106da
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100106dd
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100106da
cmp dl, 0x7d
jne 0x100106dd
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012f00
jmp 0x1001078e
cmp eax, 0x2a
je 0x100107a2
cmp eax, 0x2b
je 0x100107a2
cmp eax, 0x3f
je 0x100107a2
cmp eax, 0x7b
je 0x100107a2
cmp eax, 0x7d
jne 0x10010724
test dword [esi + 0x50], 0x10000000
je 0x100107b4
jmp 0x10010736
cmp eax, 0x5d
jne 0x10010736
test dword [esi + 0x50], 0x10000000
je 0x100107bd
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1000f940
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001077d
cmp byte [eax], 0x5c
jne 0x1001077b
inc eax
cmp eax, ecx
je 0x1001077b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001076a
mov dl, byte [eax]
cmp dl, 0x28
je 0x10010779
cmp dl, 0x29
je 0x10010779
test cl, 0x10
jne 0x1001077b
mov al, byte [eax]
cmp al, 0x7b
je 0x10010779
cmp al, 0x7d
jne 0x1001077b
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10012f00
mov ecx, esi
call fcn.10012ab0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10010316
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.10011f10
push 5
mov ecx, esi
call fcn.10011f10
push 6
mov ecx, esi
call fcn.10011f10
push 4
mov ecx, esi
call fcn.10011f10
int3