Function at 0x403070
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], 0xffffffff
je 0x403418
jmp 0x403087
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x403418
cmp ecx, 0x29
jne 0x4030ba
cmp dword [edi + 0x10], ebx
jne 0x403418
test dword [edi + 0x44], edx
jne 0x4030ba
push 5
call fcn.0040757e
add esp, 4
jmp 0x403405
cmp ecx, 0x2e
jne 0x403157
push 0x14
call fcn.0040843e
add esp, 4
cmp eax, ebx
je 0x4030e9
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 0x4030eb
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 0x403107
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 0x40314b
cmp byte [eax], 0x5c
jne 0x403149
inc eax
cmp eax, ecx
je 0x403135
test byte [edi + 0x44], 8
jne 0x403135
mov cl, byte [eax]
cmp cl, 0x28
je 0x403147
cmp cl, 0x29
je 0x403147
test byte [edi + 0x44], 0x10
jne 0x403149
mov cl, byte [eax]
cmp cl, 0x7b
je 0x403147
cmp cl, 0x7d
jne 0x403149
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00401d70
jmp 0x403405
cmp ecx, 0x5c
jne 0x4032b8
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40319b
cmp byte [eax], 0x5c
jne 0x403199
inc eax
cmp eax, ecx
je 0x403185
test byte [edi + 0x44], 8
jne 0x403185
mov cl, byte [eax]
cmp cl, 0x28
je 0x403197
cmp cl, 0x29
je 0x403197
test byte [edi + 0x44], 0x10
jne 0x403199
mov cl, byte [eax]
cmp cl, 0x7b
je 0x403197
cmp cl, 0x7d
jne 0x403199
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00401d70
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40324c
cmp byte [edi + 0x3e], 0x62
jne 0x40324c
push 0x14
call fcn.0040843e
add esp, 4
cmp eax, ebx
je 0x4031e0
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 4
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x4031e2
xor eax, eax
mov edx, dword [edi + 0x1c]
mov dword [eax + 0x10], edx
mov ecx, dword [edi + 0x1c]
mov ecx, dword [ecx + 0xc]
cmp ecx, ebx
je 0x4031fe
mov dword [eax + 0xc], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
mov dword [ecx + 0x10], eax
mov edx, dword [edi + 0x1c]
mov dword [edx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x403242
cmp byte [eax], 0x5c
jne 0x403240
inc eax
cmp eax, ecx
je 0x40322c
test byte [edi + 0x44], 8
jne 0x40322c
mov cl, byte [eax]
cmp cl, 0x28
je 0x40323e
cmp cl, 0x29
je 0x40323e
test byte [edi + 0x44], 0x10
jne 0x403240
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40323e
cmp cl, 0x7d
jne 0x403240
mov dword [edi], eax
inc dword [edi]
call fcn.00401d70
jmp 0x40340c
cmp eax, ebx
je 0x4032ac
cmp byte [edi + 0x3e], 0x42
jne 0x4032ac
lea esi, [edi + 0x18]
call fcn.00404680
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4032a0
cmp byte [eax], 0x5c
jne 0x40329e
inc eax
cmp eax, ecx
je 0x40328a
test byte [edi + 0x44], 8
jne 0x40328a
mov cl, byte [eax]
cmp cl, 0x28
je 0x40329c
cmp cl, 0x29
je 0x40329c
test byte [edi + 0x44], 0x10
jne 0x40329e
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40329c
cmp cl, 0x7d
jne 0x40329e
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00401d70
jmp 0x40340c
mov eax, edi
call fcn.00404330
jmp 0x403405
cmp ecx, 0x5b
jne 0x40335d
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4032fc
cmp byte [eax], 0x5c
jne 0x4032fa
inc eax
cmp eax, ecx
je 0x4032e6
test byte [edi + 0x44], 8
jne 0x4032e6
mov cl, byte [eax]
cmp cl, 0x28
je 0x4032f8
cmp cl, 0x29
je 0x4032f8
test byte [edi + 0x44], 0x10
jne 0x4032fa
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4032f8
cmp cl, 0x7d
jne 0x4032fa
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00401d70
call fcn.00404250
cmp dword [edi + 0x40], 0x5d
je 0x403318
push 4
call fcn.0040757e
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x403353
cmp byte [eax], 0x5c
jne 0x403351
inc eax
cmp eax, ecx
je 0x40333d
test byte [edi + 0x44], 8
jne 0x40333d
mov cl, byte [eax]
cmp cl, 0x28
je 0x40334f
cmp cl, 0x29
je 0x40334f
test byte [edi + 0x44], 0x10
jne 0x403351
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40334f
cmp cl, 0x7d
jne 0x403351
mov dword [edi], eax
inc dword [edi]
call fcn.00401d70
jmp 0x403405
cmp ecx, 0x28
jne 0x40341c
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4033a1
cmp byte [eax], 0x5c
jne 0x40339f
inc eax
cmp eax, ecx
je 0x40338b
test byte [edi + 0x44], 8
jne 0x40338b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40339d
cmp cl, 0x29
je 0x40339d
test byte [edi + 0x44], 0x10
jne 0x40339f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40339d
cmp cl, 0x7d
jne 0x40339f
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.00401d70
mov eax, edi
call fcn.004043d0
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x4033c1
push 5
call fcn.0040757e
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4033fc
cmp byte [eax], 0x5c
jne 0x4033fa
inc eax
cmp eax, ecx
je 0x4033e6
test byte [edi + 0x44], 8
jne 0x4033e6
mov cl, byte [eax]
cmp cl, 0x28
je 0x4033f8
cmp cl, 0x29
je 0x4033f8
test byte [edi + 0x44], 0x10
jne 0x4033fa
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4033f8
cmp cl, 0x7d
jne 0x4033fa
mov dword [edi], eax
inc dword [edi]
call fcn.00401d70
test bl, bl
je 0x40340c
mov eax, edi
call fcn.00404480
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x403085
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x403432
lea esi, [edi + 0x18]
call fcn.004045e0
mov eax, edi
call fcn.00403020
jmp 0x40340c
cmp ecx, 0x24
jne 0x403448
lea esi, [edi + 0x18]
call fcn.00404630
mov eax, edi
call fcn.00403020
jmp 0x40340c
cmp ecx, 0x2a
je 0x4034a4
cmp ecx, 0x2b
je 0x4034a4
cmp ecx, 0x3f
je 0x4034a4
cmp ecx, 0x7b
je 0x4034a4
cmp ecx, 0x7d
jne 0x403472
test dword [edi + 0x44], edx
jne 0x403472
push 6
call fcn.0040757e
add esp, 4
jmp 0x403405
cmp ecx, 0x5d
jne 0x40348b
test dword [edi + 0x44], edx
jne 0x40348b
push 4
call fcn.0040757e
add esp, 4
jmp 0x403405
movzx eax, byte [edi + 0x3e]
lea ecx, [edi + 0x18]
push eax
call fcn.004046d0
mov eax, edi
call fcn.00403020
jmp 0x403405
push 0xa
call fcn.0040757e
add esp, 4
jmp 0x403405