Function at 0x10030990
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10030df7
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x10030df7
cmp eax, 0x29
jne 0x100309d0
cmp dword [esi + 0x10], 0
jne 0x10030df7
test dword [esi + 0x50], 0x10000000
je 0x10030e04
jmp 0x10030d90
cmp eax, 0x2e
jne 0x10030a23
push 5
lea ecx, [esi + 0x24]
call fcn.10030e20
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030dd8
cmp byte [eax], 0x5c
jne 0x10030bdf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030bdf
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10030a1b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x10030bdd
cmp dl, 0x29
je 0x10030bdd
test bl, 0x10
jmp 0x10030bcf
cmp eax, 0x5c
jne 0x10030b41
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030a6a
cmp byte [eax], 0x5c
jne 0x10030a67
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030a67
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10030a54
mov dl, byte [ecx]
cmp dl, 0x28
je 0x10030a65
cmp dl, 0x29
je 0x10030a65
test bl, 0x10
jne 0x10030a67
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10030a65
cmp dl, 0x7d
jne 0x10030a67
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1002f820
test byte [esi + 0x50], 0x80
je 0x10030b35
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x10030ad6
push 4
lea ecx, [esi + 0x24]
call fcn.10030e20
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030aca
cmp byte [eax], 0x5c
jne 0x10030ac7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030ac7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10030ab4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x10030ac5
cmp dl, 0x29
je 0x10030ac5
test bl, 0x10
jne 0x10030ac7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10030ac5
cmp dl, 0x7d
jne 0x10030ac7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1002f820
jmp 0x10030de9
cmp al, 0x42
jne 0x10030b35
push 4
lea ecx, [esi + 0x24]
call fcn.10030e20
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030b29
cmp byte [eax], 0x5c
jne 0x10030b26
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030b26
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10030b13
mov al, byte [ecx]
cmp al, 0x28
je 0x10030b24
cmp al, 0x29
je 0x10030b24
mov eax, dword [esi]
test dl, 0x10
jne 0x10030b26
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10030b24
cmp dl, 0x7d
jne 0x10030b26
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1002f820
jmp 0x10030de9
mov ecx, esi
call fcn.10031bf0
jmp 0x10030ddf
cmp eax, 0x5b
jne 0x10030be7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030b88
cmp byte [eax], 0x5c
jne 0x10030b85
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030b85
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10030b72
mov al, byte [ecx]
cmp al, 0x28
je 0x10030b83
cmp al, 0x29
je 0x10030b83
mov eax, dword [esi]
test dl, 0x10
jne 0x10030b85
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10030b83
cmp dl, 0x7d
jne 0x10030b85
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1002f820
mov ecx, esi
call fcn.10031ac0
cmp dword [esi + 0x4c], 0x5d
jne 0x10030e12
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030dd8
cmp byte [eax], 0x5c
jne 0x10030bdf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030bdf
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10030bcc
mov al, byte [ecx]
cmp al, 0x28
je 0x10030bdd
cmp al, 0x29
je 0x10030bdd
mov eax, dword [esi]
test dl, 0x10
jne 0x10030bdf
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10030bdd
cmp dl, 0x7d
jne 0x10030bdf
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x10030dd8
cmp eax, 0x28
jne 0x10030c9a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030c2e
cmp byte [eax], 0x5c
jne 0x10030c2b
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030c2b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10030c18
mov al, byte [ecx]
cmp al, 0x28
je 0x10030c29
cmp al, 0x29
je 0x10030c29
mov eax, dword [esi]
test dl, 0x10
jne 0x10030c2b
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10030c29
cmp dl, 0x7d
jne 0x10030c2b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1002f820
mov ecx, esi
call fcn.10031d40
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10030e04
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10030c86
cmp byte [eax], 0x5c
jne 0x10030c83
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10030c83
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10030c70
mov al, byte [ecx]
cmp al, 0x28
je 0x10030c81
cmp al, 0x29
je 0x10030c81
mov eax, dword [esi]
test dl, 0x10
jne 0x10030c83
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10030c81
cmp dl, 0x7d
jne 0x10030c83
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1002f820
test bl, bl
je 0x10030de9
jmp 0x10030ddf
cmp eax, 0x5e
jne 0x10030cf0
push 2
lea ecx, [esi + 0x24]
call fcn.10030e20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10030ce4
cmp byte [eax], 0x5c
jne 0x10030ce2
inc eax
cmp eax, ecx
je 0x10030ce2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10030ccf
mov dl, byte [eax]
cmp dl, 0x28
je 0x10030ce0
cmp dl, 0x29
je 0x10030ce0
test cl, 0x10
jne 0x10030ce2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10030ce0
cmp cl, 0x7d
jne 0x10030ce2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1002f820
jmp 0x10030de9
cmp eax, 0x24
jne 0x10030d46
push 3
lea ecx, [esi + 0x24]
call fcn.10030e20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10030d3a
cmp byte [eax], 0x5c
jne 0x10030d38
inc eax
cmp eax, ecx
je 0x10030d38
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10030d25
mov dl, byte [eax]
cmp dl, 0x28
je 0x10030d36
cmp dl, 0x29
je 0x10030d36
test cl, 0x10
jne 0x10030d38
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10030d36
cmp cl, 0x7d
jne 0x10030d38
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1002f820
jmp 0x10030de9
cmp eax, 0x2a
je 0x10030dfd
cmp eax, 0x2b
je 0x10030dfd
cmp eax, 0x3f
je 0x10030dfd
cmp eax, 0x7b
je 0x10030dfd
cmp eax, 0x7d
jne 0x10030d7e
test dword [esi + 0x50], 0x10000000
je 0x10030e0b
jmp 0x10030d90
cmp eax, 0x5d
jne 0x10030d90
test dword [esi + 0x50], 0x10000000
je 0x10030e12
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100320d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10030dd8
cmp byte [eax], 0x5c
jne 0x10030dd6
inc eax
cmp eax, ecx
je 0x10030dd6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10030dc3
mov dl, byte [eax]
cmp dl, 0x28
je 0x10030dd4
cmp dl, 0x29
je 0x10030dd4
test cl, 0x10
jne 0x10030dd6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10030dd4
cmp cl, 0x7d
jne 0x10030dd6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1002f820
mov ecx, esi
call fcn.10031ea0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x100309a6
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.1002f810
push 5
call fcn.1002f810
push 6
call fcn.1002f810
push 4
call fcn.1002f810
int3