Function at 0x10033d40
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10034242
cmp eax, 0x7c
je 0x10034242
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x10033d84
cmp dword [esi + 0x10], 0
jne 0x10034242
test dword [esi + 0x50], 0x10000000
je 0x10034252
jmp 0x100341d7
cmp eax, 0x2e
jne 0x10033df4
push 5
lea ecx, [esi + 0x24]
call fcn.10034270
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003421e
cmp byte [eax], 0x5c
jne 0x10034004
lea edx, [eax + 1]
cmp edx, ecx
je 0x10034004
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10033dce
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x10033de9
cmp byte [ebp - 1], 0x29
je 0x10033de9
test bl, 0x10
jne 0x10034004
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10033de9
cmp dl, 0x7d
jne 0x10034004
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x1003421e
cmp eax, 0x5c
jne 0x10033f3f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10033e45
cmp byte [eax], 0x5c
jne 0x10033e42
lea edx, [eax + 1]
cmp edx, ecx
je 0x10033e42
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10033e2c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x10033e3f
cmp byte [ebp - 1], 0x29
je 0x10033e3f
test bl, 0x10
jne 0x10033e42
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10033e3f
cmp dl, 0x7d
jne 0x10033e42
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10032c70
test byte [esi + 0x50], 0x80
je 0x10033f33
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x10033eb9
push 4
lea ecx, [esi + 0x24]
call fcn.10034270
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10033ead
cmp byte [eax], 0x5c
jne 0x10033eaa
lea edx, [eax + 1]
cmp edx, ecx
je 0x10033eaa
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10033e94
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x10033ea7
cmp bl, 0x29
je 0x10033ea7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10033eaa
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10033ea7
cmp dl, 0x7d
jne 0x10033eaa
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10032c70
jmp 0x1003422f
cmp al, 0x42
jne 0x10033f33
push 4
lea ecx, [esi + 0x24]
call fcn.10034270
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10033f27
cmp byte [eax], 0x5c
jne 0x10033f24
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x10033f22
test byte [esi + 0x50], 8
jne 0x10033efa
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10033f10
cmp cl, 0x29
je 0x10033f10
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10033f22
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10033f10
mov edx, ecx
cmp bl, 0x7d
jne 0x10033f22
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10032c70
jmp 0x1003422f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10032c70
jmp 0x1003422f
mov ecx, esi
call fcn.100350b0
jmp 0x10034225
cmp eax, 0x5b
jne 0x1003400c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10033f98
cmp byte [eax], 0x5c
jne 0x10033f92
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x10033f90
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10033f76
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x10033f8b
cmp cl, 0x29
je 0x10033f8b
mov ecx, eax
test bl, 0x10
jne 0x10033f90
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x10033f8b
mov edx, ecx
cmp bl, 0x7d
jne 0x10033f90
lea eax, [edx + 1]
jmp 0x10033f92
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.10032c70
mov ecx, esi
call fcn.10034f70
cmp dword [esi + 0x4c], 0x5d
jne 0x10034260
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1003421e
cmp byte [eax], 0x5c
jne 0x10034004
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x10034002
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10033fe2
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x10033ff7
cmp cl, 0x29
je 0x10033ff7
mov ecx, eax
test bl, 0x10
jne 0x10034002
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x10033ff7
mov edx, ecx
cmp bl, 0x7d
jne 0x10034002
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1003421e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1003421e
cmp eax, 0x28
jne 0x100340e2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10034061
cmp byte [eax], 0x5c
jne 0x1003405e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1003405c
test byte [esi + 0x50], 8
jne 0x10034041
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x10034057
cmp cl, 0x29
je 0x10034057
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1003405c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x10034057
mov edx, ecx
cmp bl, 0x7d
jne 0x1003405c
lea eax, [edx + 1]
jmp 0x1003405e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10032c70
mov ecx, esi
call fcn.10035200
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x10034252
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x100340ce
cmp byte [eax], 0x5c
jne 0x100340cb
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x100340c6
test byte [esi + 0x50], 8
jne 0x100340ab
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x100340c1
cmp cl, 0x29
je 0x100340c1
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100340c6
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x100340c1
mov edx, ecx
cmp bl, 0x7d
jne 0x100340c6
lea eax, [edx + 1]
jmp 0x100340c8
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10032c70
test bl, bl
je 0x1003422f
jmp 0x10034225
cmp eax, 0x5e
jne 0x10034136
push 2
lea ecx, [esi + 0x24]
call fcn.10034270
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1003412a
cmp byte [eax], 0x5c
jne 0x10034128
inc eax
cmp eax, ecx
je 0x10034128
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10034117
mov dl, byte [eax]
cmp dl, 0x28
je 0x10034126
cmp dl, 0x29
je 0x10034126
test cl, 0x10
jne 0x10034128
mov al, byte [eax]
cmp al, 0x7b
je 0x10034126
cmp al, 0x7d
jne 0x10034128
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10032c70
jmp 0x1003422f
cmp eax, 0x24
jne 0x1003418d
push 3
lea ecx, [esi + 0x24]
call fcn.10034270
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10034181
cmp byte [eax], 0x5c
jne 0x1003417f
inc eax
cmp eax, ecx
je 0x1003417f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003416e
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003417d
cmp dl, 0x29
je 0x1003417d
test cl, 0x10
jne 0x1003417f
mov al, byte [eax]
cmp al, 0x7b
je 0x1003417d
cmp al, 0x7d
jne 0x1003417f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10032c70
jmp 0x1003422f
cmp eax, 0x2a
je 0x1003424b
cmp eax, 0x2b
je 0x1003424b
cmp eax, 0x3f
je 0x1003424b
cmp eax, 0x7b
je 0x1003424b
cmp eax, 0x7d
jne 0x100341c5
test dword [esi + 0x50], 0x10000000
je 0x10034259
jmp 0x100341d7
cmp eax, 0x5d
jne 0x100341d7
test dword [esi + 0x50], 0x10000000
je 0x10034260
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100355c0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003421e
cmp byte [eax], 0x5c
jne 0x1003421c
inc eax
cmp eax, ecx
je 0x1003421c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003420b
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003421a
cmp dl, 0x29
je 0x1003421a
test cl, 0x10
jne 0x1003421c
mov al, byte [eax]
cmp al, 0x7b
je 0x1003421a
cmp al, 0x7d
jne 0x1003421c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10032c70
mov ecx, esi
call fcn.100353a0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10034242
cmp eax, 0x7c
jne 0x10033d63
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.10032c60
push 5
call fcn.10032c60
push 6
call fcn.10032c60
push 4
call fcn.10032c60
int3