Function at 0x410630
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 0x410b15
lea edi, [esi + 8]
nop word [eax + eax]
cmp eax, 0x7c
je 0x410b15
cmp eax, 0x29
jne 0x41067a
cmp dword [esi + 0x10], 0
jne 0x410b15
test dword [esi + 0x50], 0x10000000
je 0x410b25
jmp 0x410aaf
cmp eax, 0x2e
jne 0x4106e9
push 5
lea ecx, [esi + 0x24]
call fcn.00410b40
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x410af6
cmp byte [eax], 0x5c
jne 0x4108eb
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x4106df
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4106bf
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x4106d4
cmp cl, 0x29
je 0x4106d4
mov ecx, eax
test bl, 0x10
jne 0x4106df
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x4106d4
mov edx, ecx
cmp bl, 0x7d
jne 0x4106df
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x410af6
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x410af6
cmp eax, 0x5c
jne 0x410838
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41073e
cmp byte [eax], 0x5c
jne 0x41073b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x410739
test byte [esi + 0x50], 8
jne 0x41071e
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x410734
cmp cl, 0x29
je 0x410734
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x410739
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x410734
mov edx, ecx
cmp bl, 0x7d
jne 0x410739
lea eax, [edx + 1]
jmp 0x41073b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040ec90
test byte [esi + 0x50], 0x80
je 0x41082c
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x4107c5
push 4
lea ecx, [esi + 0x24]
call fcn.00410b40
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4107b9
cmp byte [eax], 0x5c
jne 0x4107b6
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x4107b4
test byte [esi + 0x50], 8
jne 0x41078c
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x4107a2
cmp cl, 0x29
je 0x4107a2
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4107b4
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x4107a2
mov edx, ecx
cmp bl, 0x7d
jne 0x4107b4
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0040ec90
jmp 0x410b07
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040ec90
jmp 0x410b07
cmp al, 0x42
jne 0x41082c
push 4
lea ecx, [esi + 0x24]
call fcn.00410b40
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x410820
cmp byte [eax], 0x5c
jne 0x41081d
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x41081d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x410807
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x41081a
cmp dl, 0x29
je 0x41081a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x41081d
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x41081a
cmp dl, 0x7d
jne 0x41081d
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040ec90
jmp 0x410b07
mov ecx, esi
call fcn.004123f0
jmp 0x410afd
cmp eax, 0x5b
jne 0x4108f3
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x410889
cmp byte [eax], 0x5c
jne 0x410886
lea edx, [eax + 1]
cmp edx, ecx
je 0x410886
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x410870
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x410883
cmp byte [ebp - 1], 0x29
je 0x410883
test bl, 0x10
jne 0x410886
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x410883
cmp dl, 0x7d
jne 0x410886
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040ec90
mov ecx, esi
call fcn.004122b0
cmp dword [esi + 0x4c], 0x5d
jne 0x410b33
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x410af6
cmp byte [eax], 0x5c
jne 0x4108eb
lea edx, [eax + 1]
cmp edx, ecx
je 0x4108eb
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4108d5
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x4108e8
cmp byte [ebp - 1], 0x29
je 0x4108e8
test bl, 0x10
jne 0x4108eb
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4108e8
cmp dl, 0x7d
jne 0x4108eb
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x410af6
cmp eax, 0x28
jne 0x4109b7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x410942
cmp byte [eax], 0x5c
jne 0x41093f
lea edx, [eax + 1]
cmp edx, ecx
je 0x41093f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x410929
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x41093c
cmp bl, 0x29
je 0x41093c
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x41093f
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x41093c
cmp dl, 0x7d
jne 0x41093f
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040ec90
mov ecx, esi
call fcn.00412540
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x410b25
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4109a3
cmp byte [eax], 0x5c
jne 0x4109a0
lea edx, [eax + 1]
cmp edx, ecx
je 0x4109a0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41098a
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x41099d
cmp bl, 0x29
je 0x41099d
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4109a0
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x41099d
cmp dl, 0x7d
jne 0x4109a0
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040ec90
test bh, bh
je 0x410b07
jmp 0x410afd
cmp eax, 0x5e
jne 0x410a0e
push 2
lea ecx, [esi + 0x24]
call fcn.00410b40
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x410a02
cmp byte [eax], 0x5c
jne 0x410a00
inc eax
cmp eax, ecx
je 0x410a00
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4109ef
mov dl, byte [eax]
cmp dl, 0x28
je 0x4109fe
cmp dl, 0x29
je 0x4109fe
test cl, 0x10
jne 0x410a00
mov al, byte [eax]
cmp al, 0x7b
je 0x4109fe
cmp al, 0x7d
jne 0x410a00
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040ec90
jmp 0x410b07
cmp eax, 0x24
jne 0x410a65
push 3
lea ecx, [esi + 0x24]
call fcn.00410b40
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x410a59
cmp byte [eax], 0x5c
jne 0x410a57
inc eax
cmp eax, ecx
je 0x410a57
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x410a46
mov dl, byte [eax]
cmp dl, 0x28
je 0x410a55
cmp dl, 0x29
je 0x410a55
test cl, 0x10
jne 0x410a57
mov al, byte [eax]
cmp al, 0x7b
je 0x410a55
cmp al, 0x7d
jne 0x410a57
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040ec90
jmp 0x410b07
cmp eax, 0x2a
je 0x410b1e
cmp eax, 0x2b
je 0x410b1e
cmp eax, 0x3f
je 0x410b1e
cmp eax, 0x7b
je 0x410b1e
cmp eax, 0x7d
jne 0x410a9d
test dword [esi + 0x50], 0x10000000
je 0x410b2c
jmp 0x410aaf
cmp eax, 0x5d
jne 0x410aaf
test dword [esi + 0x50], 0x10000000
je 0x410b33
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00412900
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x410af6
cmp byte [eax], 0x5c
jne 0x410af4
inc eax
cmp eax, ecx
je 0x410af4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x410ae3
mov dl, byte [eax]
cmp dl, 0x28
je 0x410af2
cmp dl, 0x29
je 0x410af2
test cl, 0x10
jne 0x410af4
mov al, byte [eax]
cmp al, 0x7b
je 0x410af2
cmp al, 0x7d
jne 0x410af4
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0040ec90
mov ecx, esi
call fcn.004126d0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x410650
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0040ec80
push 5
call fcn.0040ec80
push 6
call fcn.0040ec80
push 4
call fcn.0040ec80
int3