Function at 0x40dbb0
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 0x40debd
jmp 0x40dbd2
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40debd
cmp ecx, 0x29
jne 0x40dc05
cmp dword [edi + 0x10], ebx
jne 0x40debd
test dword [edi + 0x44], edx
jne 0x40dc05
push 5
call fcn.0046808e
add esp, 4
jmp 0x40dea7
cmp ecx, 0x2e
jne 0x40dca8
push 0x14
call fcn.00450883
add esp, 4
cmp eax, ebx
je 0x40dc34
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 0x40dc36
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 0x40dc52
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 0x40dc9c
cmp word [eax], 0x5c
jne 0x40dc99
add eax, 2
cmp eax, ecx
je 0x40dc84
test byte [edi + 0x44], 8
jne 0x40dc84
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40dc97
cmp ecx, 0x29
je 0x40dc97
test byte [edi + 0x44], 0x10
jne 0x40dc99
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40dc97
cmp ecx, 0x7d
jne 0x40dc99
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
jmp 0x40dea7
cmp ecx, 0x5c
jne 0x40dd91
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40dcf2
cmp word [eax], 0x5c
jne 0x40dcef
add eax, 2
cmp eax, ecx
je 0x40dcda
test byte [edi + 0x44], 8
jne 0x40dcda
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40dced
cmp ecx, 0x29
je 0x40dced
test byte [edi + 0x44], 0x10
jne 0x40dcef
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40dced
cmp ecx, 0x7d
jne 0x40dcef
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40dd5f
cmp word [edi + 0x3e], 0x62
jne 0x40dd5f
lea esi, [edi + 0x18]
call fcn.0040f690
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40dd53
cmp word [eax], 0x5c
jne 0x40dd50
add eax, 2
cmp eax, ecx
je 0x40dd3b
test byte [edi + 0x44], 8
jne 0x40dd3b
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40dd4e
cmp ecx, 0x29
je 0x40dd4e
test byte [edi + 0x44], 0x10
jne 0x40dd50
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40dd4e
cmp ecx, 0x7d
jne 0x40dd50
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
jmp 0x40deae
cmp eax, ebx
je 0x40dd85
cmp word [edi + 0x3e], 0x42
jne 0x40dd85
lea esi, [edi + 0x18]
call fcn.0040f690
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.0040ee80
jmp 0x40deae
mov eax, edi
call fcn.0040f380
jmp 0x40dea7
cmp ecx, 0x5b
jne 0x40de3f
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40dddb
cmp word [eax], 0x5c
jne 0x40ddd8
add eax, 2
cmp eax, ecx
je 0x40ddc3
test byte [edi + 0x44], 8
jne 0x40ddc3
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40ddd6
cmp ecx, 0x29
je 0x40ddd6
test byte [edi + 0x44], 0x10
jne 0x40ddd8
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40ddd6
cmp ecx, 0x7d
jne 0x40ddd8
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
call fcn.0040f2d0
cmp dword [edi + 0x40], 0x5d
je 0x40ddf7
push 4
call fcn.0046808e
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40de38
cmp word [eax], 0x5c
jne 0x40de35
add eax, 2
cmp eax, ecx
je 0x40de20
test byte [edi + 0x44], 8
jne 0x40de20
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40de33
cmp ecx, 0x29
je 0x40de33
test byte [edi + 0x44], 0x10
jne 0x40de35
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40de33
cmp ecx, 0x7d
jne 0x40de35
mov dword [edi], eax
add dword [edi], 2
call fcn.0040d780
jmp 0x40dea7
cmp ecx, 0x28
jne 0x40dec1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40de85
cmp word [eax], 0x5c
jne 0x40de82
add eax, 2
cmp eax, ecx
je 0x40de6d
test byte [edi + 0x44], 8
jne 0x40de6d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40de80
cmp ecx, 0x29
je 0x40de80
test byte [edi + 0x44], 0x10
jne 0x40de82
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40de80
cmp ecx, 0x7d
jne 0x40de82
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040d780
mov eax, edi
call fcn.0040f450
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.0040fc20
test bl, bl
je 0x40deae
mov eax, edi
call fcn.0040f500
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x40dbd0
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x40ded7
lea esi, [edi + 0x18]
call fcn.0040fec0
mov eax, edi
call fcn.0040ee80
jmp 0x40deae
cmp ecx, 0x24
jne 0x40deed
lea esi, [edi + 0x18]
call fcn.0040f640
mov eax, edi
call fcn.0040ee80
jmp 0x40deae
cmp ecx, 0x2a
je 0x40df49
cmp ecx, 0x2b
je 0x40df49
cmp ecx, 0x3f
je 0x40df49
cmp ecx, 0x7b
je 0x40df49
cmp ecx, 0x7d
jne 0x40df17
test dword [edi + 0x44], edx
jne 0x40df17
push 6
call fcn.0046808e
add esp, 4
jmp 0x40dea7
cmp ecx, 0x5d
jne 0x40df30
test dword [edi + 0x44], edx
jne 0x40df30
push 4
call fcn.0046808e
add esp, 4
jmp 0x40dea7
movzx edx, word [edi + 0x3e]
lea ecx, [edi + 0x18]
push edx
call fcn.0040ff10
mov eax, edi
call fcn.0040ee80
jmp 0x40dea7
push 0xa
call fcn.0046808e
add esp, 4
jmp 0x40dea7