Function at 0x10040570
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, eax
xor ebp, ebp
xor al, al
cmp dword [edi + 0x40], 0xffff
je 0x1004084d
jmp 0x10040590
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x1004084d
cmp ecx, 0x29
jne 0x100405c3
cmp dword [edi + 0x10], ebp
jne 0x1004084d
test dword [edi + 0x44], edx
jne 0x100405c3
push 5
call fcn.10054be8
add esp, 4
jmp 0x10040837
cmp ecx, 0x2e
jne 0x1004066a
push 0x14
call fcn.10056628
add esp, 4
cmp eax, ebp
je 0x100405f2
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
jmp 0x100405f4
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, ebp
je 0x10040610
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 0x1004065e
cmp word [eax], 0x5c
jne 0x1004065b
add eax, 2
cmp eax, ecx
je 0x10040644
test byte [edi + 0x44], 8
jne 0x10040644
movzx ecx, word [eax]
cmp cx, 0x28
je 0x10040659
cmp cx, 0x29
je 0x10040659
test byte [edi + 0x44], 0x10
jne 0x1004065b
movzx ecx, word [eax]
cmp cx, 0x7b
je 0x10040659
cmp cx, 0x7d
jne 0x1004065b
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
jmp 0x10040837
cmp ecx, 0x5c
jne 0x10040759
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x100406b8
cmp word [eax], 0x5c
jne 0x100406b5
add eax, 2
cmp eax, ecx
je 0x1004069e
test byte [edi + 0x44], 8
jne 0x1004069e
movzx ecx, word [eax]
cmp cx, 0x28
je 0x100406b3
cmp cx, 0x29
je 0x100406b3
test byte [edi + 0x44], 0x10
jne 0x100406b5
movzx ecx, word [eax]
cmp cx, 0x7b
je 0x100406b3
cmp cx, 0x7d
jne 0x100406b5
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x10040704
cmp word [edi + 0x3e], 0x62
jne 0x10040704
lea esi, [edi + 0x18]
call fcn.10041810
mov esi, dword [edi]
cmp esi, dword [edi + 8]
je 0x100406f8
cmp word [esi], 0x5c
jne 0x100406f5
mov edx, edi
call fcn.10040500
test al, al
je 0x100406f5
add esi, 2
mov dword [edi], esi
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
jmp 0x1004083e
cmp eax, ebp
je 0x1004074d
cmp word [edi + 0x3e], 0x42
jne 0x1004074d
lea esi, [edi + 0x18]
call fcn.10041810
mov eax, dword [edi + 0x1c]
or dword [eax + 8], 1
mov esi, dword [edi]
add eax, 8
cmp esi, dword [edi + 8]
je 0x10040741
cmp word [esi], 0x5c
jne 0x1004073e
mov edx, edi
call fcn.10040500
test al, al
je 0x1004073e
add esi, 2
mov dword [edi], esi
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
jmp 0x1004083e
mov eax, edi
call fcn.10041470
jmp 0x10040837
cmp ecx, 0x5b
jne 0x100407c3
mov esi, dword [edi]
cmp esi, dword [edi + 8]
je 0x1004077e
cmp word [esi], 0x5c
jne 0x1004077b
mov edx, edi
call fcn.10040500
test al, al
je 0x1004077b
add esi, 2
mov dword [edi], esi
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
call fcn.100413d0
cmp dword [edi + 0x40], 0x5d
je 0x1004079a
push 4
call fcn.10054be8
add esp, 4
mov esi, dword [edi]
cmp esi, dword [edi + 8]
je 0x100407ba
cmp word [esi], 0x5c
jne 0x100407b7
mov edx, edi
call fcn.10040500
test al, al
je 0x100407b7
add esi, 2
mov dword [edi], esi
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
jmp 0x10040837
cmp ecx, 0x28
jne 0x10040853
mov esi, dword [edi]
cmp esi, dword [edi + 8]
je 0x100407ec
cmp word [esi], 0x5c
jne 0x100407e9
mov edx, edi
call fcn.10040500
test al, al
je 0x100407e9
add esi, 2
mov dword [edi], esi
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
mov eax, edi
call fcn.10041530
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x1004080c
push 5
call fcn.10054be8
add esp, 4
mov esi, dword [edi]
cmp esi, dword [edi + 8]
je 0x1004082c
cmp word [esi], 0x5c
jne 0x10040829
mov edx, edi
call fcn.10040500
test al, al
je 0x10040829
add esi, 2
mov dword [edi], esi
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
test bl, bl
je 0x1004083e
mov eax, edi
call fcn.10041630
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x10040590
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x5e
jne 0x10040889
lea esi, [edi + 0x18]
call fcn.10041770
mov esi, dword [edi]
cmp esi, dword [edi + 8]
je 0x10040880
cmp word [esi], 0x5c
jne 0x1004087d
mov edx, edi
call fcn.10040500
test al, al
je 0x1004087d
add esi, 2
mov dword [edi], esi
add dword [edi], 2
mov esi, edi
call fcn.1003f9b0
jmp 0x1004083e
cmp ecx, 0x24
jne 0x1004089f
lea esi, [edi + 0x18]
call fcn.100417c0
mov eax, edi
call fcn.10040540
jmp 0x1004083e
cmp ecx, 0x2a
je 0x100408fe
cmp ecx, 0x2b
je 0x100408fe
cmp ecx, 0x3f
je 0x100408fe
cmp ecx, 0x7b
je 0x100408fe
cmp ecx, 0x7d
jne 0x100408cc
test dword [edi + 0x44], edx
jne 0x100408cc
push 6
call fcn.10054be8
add esp, 4
jmp 0x10040837
cmp ecx, 0x5d
jne 0x100408e5
test dword [edi + 0x44], edx
jne 0x100408e5
push 4
call fcn.10054be8
add esp, 4
jmp 0x10040837
movzx edx, word [edi + 0x3e]
push edx
lea eax, [edi + 0x18]
call fcn.10041860
mov eax, edi
call fcn.10040540
jmp 0x10040837
push 0xa
call fcn.10054be8
add esp, 4
jmp 0x10040837