Function at 0x417e70
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor ebx, ebx
xor al, al
cmp dword [edi + 0x40], 0xffff
je 0x41817d
jmp 0x417e92
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x41817d
cmp ecx, 0x29
jne 0x417ec5
cmp dword [edi + 0x10], ebx
jne 0x41817d
test dword [edi + 0x44], edx
jne 0x417ec5
push 5
call fcn.0042c3eb
add esp, 4
jmp 0x418167
cmp ecx, 0x2e
jne 0x417f68
push 0x14
call fcn.0042d9ac
add esp, 4
cmp eax, ebx
je 0x417ef4
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x417ef6
xor eax, eax
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x417f12
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x417f5c
cmp word [eax], 0x5c
jne 0x417f59
add eax, 2
cmp eax, ecx
je 0x417f44
test byte [edi + 0x44], 8
jne 0x417f44
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x417f57
cmp ecx, 0x29
je 0x417f57
test byte [edi + 0x44], 0x10
jne 0x417f59
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x417f57
cmp ecx, 0x7d
jne 0x417f59
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00416d10
jmp 0x418167
cmp ecx, 0x5c
jne 0x418051
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x417fb2
cmp word [eax], 0x5c
jne 0x417faf
add eax, 2
cmp eax, ecx
je 0x417f9a
test byte [edi + 0x44], 8
jne 0x417f9a
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x417fad
cmp ecx, 0x29
je 0x417fad
test byte [edi + 0x44], 0x10
jne 0x417faf
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x417fad
cmp ecx, 0x7d
jne 0x417faf
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00416d10
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x41801f
cmp word [edi + 0x3e], 0x62
jne 0x41801f
lea esi, [edi + 0x18]
call fcn.004191a0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x418013
cmp word [eax], 0x5c
jne 0x418010
add eax, 2
cmp eax, ecx
je 0x417ffb
test byte [edi + 0x44], 8
jne 0x417ffb
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x41800e
cmp ecx, 0x29
je 0x41800e
test byte [edi + 0x44], 0x10
jne 0x418010
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41800e
cmp ecx, 0x7d
jne 0x418010
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00416d10
jmp 0x41816e
cmp eax, ebx
je 0x418045
cmp word [edi + 0x3e], 0x42
jne 0x418045
lea esi, [edi + 0x18]
call fcn.004191a0
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.00417e20
jmp 0x41816e
mov eax, edi
call fcn.00418e40
jmp 0x418167
cmp ecx, 0x5b
jne 0x4180ff
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x41809b
cmp word [eax], 0x5c
jne 0x418098
add eax, 2
cmp eax, ecx
je 0x418083
test byte [edi + 0x44], 8
jne 0x418083
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x418096
cmp ecx, 0x29
je 0x418096
test byte [edi + 0x44], 0x10
jne 0x418098
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x418096
cmp ecx, 0x7d
jne 0x418098
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00416d10
call fcn.00418d90
cmp dword [edi + 0x40], 0x5d
je 0x4180b7
push 4
call fcn.0042c3eb
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4180f8
cmp word [eax], 0x5c
jne 0x4180f5
add eax, 2
cmp eax, ecx
je 0x4180e0
test byte [edi + 0x44], 8
jne 0x4180e0
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4180f3
cmp ecx, 0x29
je 0x4180f3
test byte [edi + 0x44], 0x10
jne 0x4180f5
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4180f3
cmp ecx, 0x7d
jne 0x4180f5
mov dword [edi], eax
add dword [edi], 2
call fcn.00416d10
jmp 0x418167
cmp ecx, 0x28
jne 0x418181
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x418145
cmp word [eax], 0x5c
jne 0x418142
add eax, 2
cmp eax, ecx
je 0x41812d
test byte [edi + 0x44], 8
jne 0x41812d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x418140
cmp ecx, 0x29
je 0x418140
test byte [edi + 0x44], 0x10
jne 0x418142
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x418140
cmp ecx, 0x7d
jne 0x418142
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00416d10
mov eax, edi
call fcn.00418f10
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.00418d20
test bl, bl
je 0x41816e
mov eax, edi
call fcn.00418fc0
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x417e90
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x418197
lea esi, [edi + 0x18]
call fcn.00419100
mov eax, edi
call fcn.00417e20
jmp 0x41816e
cmp ecx, 0x24
jne 0x4181ad
lea esi, [edi + 0x18]
call fcn.00419150
mov eax, edi
call fcn.00417e20
jmp 0x41816e
cmp ecx, 0x2a
je 0x418209
cmp ecx, 0x2b
je 0x418209
cmp ecx, 0x3f
je 0x418209
cmp ecx, 0x7b
je 0x418209
cmp ecx, 0x7d
jne 0x4181d7
test dword [edi + 0x44], edx
jne 0x4181d7
push 6
call fcn.0042c3eb
add esp, 4
jmp 0x418167
cmp ecx, 0x5d
jne 0x4181f0
test dword [edi + 0x44], edx
jne 0x4181f0
push 4
call fcn.0042c3eb
add esp, 4
jmp 0x418167
movzx edx, word [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.004191f0
mov eax, edi
call fcn.00417e20
jmp 0x418167
push 0xa
call fcn.0042c3eb
add esp, 4
jmp 0x418167