Function at 0x4053c0
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 0x40571d
jmp 0x4053d7
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40571d
cmp ecx, 0x29
jne 0x40540a
cmp dword [edi + 0x10], ebx
jne 0x40571d
test dword [edi + 0x44], edx
jne 0x40540a
push 5
call fcn.0040fdf8
add esp, 4
jmp 0x40570a
cmp ecx, 0x2e
jne 0x4054a7
push 0x14
call fcn.00410f61
add esp, 4
cmp eax, ebx
je 0x405439
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 0x40543b
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 0x405457
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 0x40549b
cmp byte [eax], 0x5c
jne 0x405499
inc eax
cmp eax, ecx
je 0x405485
test byte [edi + 0x44], 8
jne 0x405485
mov cl, byte [eax]
cmp cl, 0x28
je 0x405497
cmp cl, 0x29
je 0x405497
test byte [edi + 0x44], 0x10
jne 0x405499
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405497
cmp cl, 0x7d
jne 0x405499
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.004034d0
jmp 0x40570a
cmp ecx, 0x5c
jne 0x4055bd
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4054eb
cmp byte [eax], 0x5c
jne 0x4054e9
inc eax
cmp eax, ecx
je 0x4054d5
test byte [edi + 0x44], 8
jne 0x4054d5
mov cl, byte [eax]
cmp cl, 0x28
je 0x4054e7
cmp cl, 0x29
je 0x4054e7
test byte [edi + 0x44], 0x10
jne 0x4054e9
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4054e7
cmp cl, 0x7d
jne 0x4054e9
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.004034d0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x405551
cmp byte [edi + 0x3e], 0x62
jne 0x405551
lea esi, [edi + 0x18]
call fcn.00407080
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405545
cmp byte [eax], 0x5c
jne 0x405543
inc eax
cmp eax, ecx
je 0x40552f
test byte [edi + 0x44], 8
jne 0x40552f
mov cl, byte [eax]
cmp cl, 0x28
je 0x405541
cmp cl, 0x29
je 0x405541
test byte [edi + 0x44], 0x10
jne 0x405543
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405541
cmp cl, 0x7d
jne 0x405543
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.004034d0
jmp 0x405711
cmp eax, ebx
je 0x4055b1
cmp byte [edi + 0x3e], 0x42
jne 0x4055b1
lea esi, [edi + 0x18]
call fcn.00407080
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4055a5
cmp byte [eax], 0x5c
jne 0x4055a3
inc eax
cmp eax, ecx
je 0x40558f
test byte [edi + 0x44], 8
jne 0x40558f
mov cl, byte [eax]
cmp cl, 0x28
je 0x4055a1
cmp cl, 0x29
je 0x4055a1
test byte [edi + 0x44], 0x10
jne 0x4055a3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4055a1
cmp cl, 0x7d
jne 0x4055a3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.004034d0
jmp 0x405711
mov eax, edi
call fcn.00406e00
jmp 0x40570a
cmp ecx, 0x5b
jne 0x405662
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405601
cmp byte [eax], 0x5c
jne 0x4055ff
inc eax
cmp eax, ecx
je 0x4055eb
test byte [edi + 0x44], 8
jne 0x4055eb
mov cl, byte [eax]
cmp cl, 0x28
je 0x4055fd
cmp cl, 0x29
je 0x4055fd
test byte [edi + 0x44], 0x10
jne 0x4055ff
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4055fd
cmp cl, 0x7d
jne 0x4055ff
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.004034d0
call fcn.00406d20
cmp dword [edi + 0x40], 0x5d
je 0x40561d
push 4
call fcn.0040fdf8
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405658
cmp byte [eax], 0x5c
jne 0x405656
inc eax
cmp eax, ecx
je 0x405642
test byte [edi + 0x44], 8
jne 0x405642
mov cl, byte [eax]
cmp cl, 0x28
je 0x405654
cmp cl, 0x29
je 0x405654
test byte [edi + 0x44], 0x10
jne 0x405656
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405654
cmp cl, 0x7d
jne 0x405656
mov dword [edi], eax
inc dword [edi]
call fcn.004034d0
jmp 0x40570a
cmp ecx, 0x28
jne 0x405721
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4056a6
cmp byte [eax], 0x5c
jne 0x4056a4
inc eax
cmp eax, ecx
je 0x405690
test byte [edi + 0x44], 8
jne 0x405690
mov cl, byte [eax]
cmp cl, 0x28
je 0x4056a2
cmp cl, 0x29
je 0x4056a2
test byte [edi + 0x44], 0x10
jne 0x4056a4
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4056a2
cmp cl, 0x7d
jne 0x4056a4
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.004034d0
mov eax, edi
call fcn.00406ea0
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x4056c6
push 5
call fcn.0040fdf8
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x405701
cmp byte [eax], 0x5c
jne 0x4056ff
inc eax
cmp eax, ecx
je 0x4056eb
test byte [edi + 0x44], 8
jne 0x4056eb
mov cl, byte [eax]
cmp cl, 0x28
je 0x4056fd
cmp cl, 0x29
je 0x4056fd
test byte [edi + 0x44], 0x10
jne 0x4056ff
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4056fd
cmp cl, 0x7d
jne 0x4056ff
mov dword [edi], eax
inc dword [edi]
call fcn.004034d0
test bl, bl
je 0x405711
mov eax, edi
call fcn.00406f60
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x4053d5
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x405737
lea esi, [edi + 0x18]
call fcn.004068c0
mov eax, edi
call fcn.00404b80
jmp 0x405711
cmp ecx, 0x24
jne 0x40574d
lea esi, [edi + 0x18]
call fcn.00406910
mov eax, edi
call fcn.00404b80
jmp 0x405711
cmp ecx, 0x2a
je 0x4057a9
cmp ecx, 0x2b
je 0x4057a9
cmp ecx, 0x3f
je 0x4057a9
cmp ecx, 0x7b
je 0x4057a9
cmp ecx, 0x7d
jne 0x405777
test dword [edi + 0x44], edx
jne 0x405777
push 6
call fcn.0040fdf8
add esp, 4
jmp 0x40570a
cmp ecx, 0x5d
jne 0x405790
test dword [edi + 0x44], edx
jne 0x405790
push 4
call fcn.0040fdf8
add esp, 4
jmp 0x40570a
movzx edx, byte [edi + 0x3e]
lea ecx, [edi + 0x18]
push edx
call fcn.00406960
mov eax, edi
call fcn.00404b80
jmp 0x40570a
push 0xa
call fcn.0040fdf8
add esp, 4
jmp 0x40570a