Function at 0x4145a0
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 0x4148ad
jmp 0x4145c2
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x4148ad
cmp ecx, 0x29
jne 0x4145f5
cmp dword [edi + 0x10], ebx
jne 0x4148ad
test dword [edi + 0x44], edx
jne 0x4145f5
push 5
call fcn.0041b8b9
add esp, 4
jmp 0x414897
cmp ecx, 0x2e
jne 0x414698
push 0x14
call fcn.0041cc2d
add esp, 4
cmp eax, ebx
je 0x414624
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 0x414626
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 0x414642
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 0x41468c
cmp word [eax], 0x5c
jne 0x414689
add eax, 2
cmp eax, ecx
je 0x414674
test byte [edi + 0x44], 8
jne 0x414674
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x414687
cmp ecx, 0x29
je 0x414687
test byte [edi + 0x44], 0x10
jne 0x414689
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x414687
cmp ecx, 0x7d
jne 0x414689
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00413c00
jmp 0x414897
cmp ecx, 0x5c
jne 0x414781
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4146e2
cmp word [eax], 0x5c
jne 0x4146df
add eax, 2
cmp eax, ecx
je 0x4146ca
test byte [edi + 0x44], 8
jne 0x4146ca
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4146dd
cmp ecx, 0x29
je 0x4146dd
test byte [edi + 0x44], 0x10
jne 0x4146df
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4146dd
cmp ecx, 0x7d
jne 0x4146df
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00413c00
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x41474f
cmp word [edi + 0x3e], 0x62
jne 0x41474f
lea esi, [edi + 0x18]
call fcn.004159f0
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x414743
cmp word [eax], 0x5c
jne 0x414740
add eax, 2
cmp eax, ecx
je 0x41472b
test byte [edi + 0x44], 8
jne 0x41472b
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x41473e
cmp ecx, 0x29
je 0x41473e
test byte [edi + 0x44], 0x10
jne 0x414740
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41473e
cmp ecx, 0x7d
jne 0x414740
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00413c00
jmp 0x41489e
cmp eax, ebx
je 0x414775
cmp word [edi + 0x3e], 0x42
jne 0x414775
lea esi, [edi + 0x18]
call fcn.004159f0
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.00414550
jmp 0x41489e
mov eax, edi
call fcn.00415690
jmp 0x414897
cmp ecx, 0x5b
jne 0x41482f
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4147cb
cmp word [eax], 0x5c
jne 0x4147c8
add eax, 2
cmp eax, ecx
je 0x4147b3
test byte [edi + 0x44], 8
jne 0x4147b3
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4147c6
cmp ecx, 0x29
je 0x4147c6
test byte [edi + 0x44], 0x10
jne 0x4147c8
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4147c6
cmp ecx, 0x7d
jne 0x4147c8
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00413c00
call fcn.004155e0
cmp dword [edi + 0x40], 0x5d
je 0x4147e7
push 4
call fcn.0041b8b9
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x414828
cmp word [eax], 0x5c
jne 0x414825
add eax, 2
cmp eax, ecx
je 0x414810
test byte [edi + 0x44], 8
jne 0x414810
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x414823
cmp ecx, 0x29
je 0x414823
test byte [edi + 0x44], 0x10
jne 0x414825
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x414823
cmp ecx, 0x7d
jne 0x414825
mov dword [edi], eax
add dword [edi], 2
call fcn.00413c00
jmp 0x414897
cmp ecx, 0x28
jne 0x4148b1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x414875
cmp word [eax], 0x5c
jne 0x414872
add eax, 2
cmp eax, ecx
je 0x41485d
test byte [edi + 0x44], 8
jne 0x41485d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x414870
cmp ecx, 0x29
je 0x414870
test byte [edi + 0x44], 0x10
jne 0x414872
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x414870
cmp ecx, 0x7d
jne 0x414872
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00413c00
mov eax, edi
call fcn.00415760
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.00415570
test bl, bl
je 0x41489e
mov eax, edi
call fcn.00415810
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x4145c0
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x4148c7
lea esi, [edi + 0x18]
call fcn.00415950
mov eax, edi
call fcn.00414550
jmp 0x41489e
cmp ecx, 0x24
jne 0x4148dd
lea esi, [edi + 0x18]
call fcn.004159a0
mov eax, edi
call fcn.00414550
jmp 0x41489e
cmp ecx, 0x2a
je 0x414939
cmp ecx, 0x2b
je 0x414939
cmp ecx, 0x3f
je 0x414939
cmp ecx, 0x7b
je 0x414939
cmp ecx, 0x7d
jne 0x414907
test dword [edi + 0x44], edx
jne 0x414907
push 6
call fcn.0041b8b9
add esp, 4
jmp 0x414897
cmp ecx, 0x5d
jne 0x414920
test dword [edi + 0x44], edx
jne 0x414920
push 4
call fcn.0041b8b9
add esp, 4
jmp 0x414897
movzx edx, word [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.00415a40
mov eax, edi
call fcn.00414550
jmp 0x414897
push 0xa
call fcn.0041b8b9
add esp, 4
jmp 0x414897