Function at 0x10083370
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10083779
cmp eax, 0x7c
je 0x10083779
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x100833b4
cmp dword [esi + 0x10], 0
jne 0x10083777
test dword [esi + 0x50], 0x10000000
je 0x10083789
jmp 0x1008370c
cmp eax, 0x2e
jne 0x10083414
push 5
lea ecx, [esi + 0x24]
call fcn.100860f0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10083753
cmp byte [eax], 0x5c
jne 0x1008340c
lea edx, [eax + 1]
cmp edx, ecx
je 0x1008340c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100833f6
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x10083409
cmp byte [ebp - 1], 0x29
je 0x10083409
test bl, 0x10
jne 0x1008340c
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10083409
cmp dl, 0x7d
jne 0x1008340c
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x10083753
cmp eax, 0x5c
jne 0x1008355f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10083465
cmp byte [eax], 0x5c
jne 0x10083462
lea edx, [eax + 1]
cmp edx, ecx
je 0x10083462
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1008344c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1008345f
cmp byte [ebp - 1], 0x29
je 0x1008345f
test bl, 0x10
jne 0x10083462
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1008345f
cmp dl, 0x7d
jne 0x10083462
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10086680
test byte [esi + 0x50], 0x80
je 0x10083553
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x100834d9
push 4
lea ecx, [esi + 0x24]
call fcn.100860f0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100834cd
cmp byte [eax], 0x5c
jne 0x100834ca
lea edx, [eax + 1]
cmp edx, ecx
je 0x100834ca
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100834b4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100834c7
cmp bl, 0x29
je 0x100834c7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100834ca
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100834c7
cmp dl, 0x7d
jne 0x100834ca
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10086680
jmp 0x10083764
cmp al, 0x42
jne 0x10083553
push 4
lea ecx, [esi + 0x24]
call fcn.100860f0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10083547
cmp byte [eax], 0x5c
jne 0x10083544
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10083542
test byte [esi + 0x50], 8
jne 0x1008351a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10083530
cmp cl, 0x29
je 0x10083530
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10083542
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10083530
mov edx, ecx
cmp bl, 0x7d
jne 0x10083542
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10086680
jmp 0x10083764
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10086680
jmp 0x10083764
mov ecx, esi
call fcn.100837b0
jmp 0x1008375a
cmp eax, 0x5b
jne 0x10083618
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100835b5
cmp byte [eax], 0x5c
jne 0x100835b2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x100835b0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10083596
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x100835ab
cmp cl, 0x29
je 0x100835ab
mov ecx, eax
test bl, 0x10
jne 0x100835b0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x100835ab
mov edx, ecx
cmp bl, 0x7d
jne 0x100835b0
lea eax, [edx + 1]
jmp 0x100835b2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10086680
lea ecx, [esi + 0x24]
call fcn.10082a50
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x100835dd
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.10086170
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x100835fb
cmp eax, 0x5d
jne 0x100835fb
push eax
lea ecx, [esi + 0x24]
call fcn.100829e0
mov ecx, esi
call fcn.10086170
mov ecx, esi
call fcn.10084210
cmp dword [esi + 0x4c], 0x5d
jne 0x1008379b
mov ecx, esi
call fcn.10086170
jmp 0x1008375a
cmp eax, 0x28
jne 0x10083697
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10083669
cmp byte [eax], 0x5c
jne 0x10083666
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10083664
test byte [esi + 0x50], 8
jne 0x10083649
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1008365f
cmp cl, 0x29
je 0x1008365f
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10083664
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1008365f
mov edx, ecx
cmp bl, 0x7d
jne 0x10083664
lea eax, [edx + 1]
jmp 0x10083666
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10086680
mov ecx, esi
call fcn.100869c0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10083789
mov ecx, esi
call fcn.10086170
test bl, bl
je 0x10083764
jmp 0x1008375a
cmp eax, 0x5e
jne 0x100836ab
push 2
lea ecx, [esi + 0x24]
call fcn.100860f0
jmp 0x100834ee
cmp eax, 0x24
jne 0x100836c2
push 3
lea ecx, [esi + 0x24]
call fcn.100860f0
lea edi, [esi + 8]
jmp 0x100834ee
cmp eax, 0x2a
je 0x10083780
cmp eax, 0x2b
je 0x10083780
cmp eax, 0x3f
je 0x10083780
cmp eax, 0x7b
je 0x10083780
cmp eax, 0x7d
jne 0x100836fa
test dword [esi + 0x50], 0x10000000
je 0x10083792
jmp 0x1008370c
cmp eax, 0x5d
jne 0x1008370c
test dword [esi + 0x50], 0x10000000
je 0x1008379b
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10082820
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10083753
cmp byte [eax], 0x5c
jne 0x10083751
inc eax
cmp eax, ecx
je 0x10083751
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10083740
mov dl, byte [eax]
cmp dl, 0x28
je 0x1008374f
cmp dl, 0x29
je 0x1008374f
test cl, 0x10
jne 0x10083751
mov al, byte [eax]
cmp al, 0x7b
je 0x1008374f
cmp al, 0x7d
jne 0x10083751
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10086680
mov ecx, esi
call fcn.100861d0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10083777
cmp eax, 0x7c
jne 0x10083393
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10085640
push 5
mov ecx, esi
call fcn.10085640
push 6
mov ecx, esi
call fcn.10085640
push 4
mov ecx, esi
call fcn.10085640
int3