Function at 0x40f0c0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov ebx, eax
push edi
xor edi, edi
xor al, al
cmp dword [ebx + 0x40], 0xffff
je 0x40f3d4
lea ebx, [ebx]
mov ecx, dword [ebx + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40f3d4
cmp ecx, 0x29
jne 0x40f113
cmp dword [ebx + 0x10], edi
jne 0x40f3d4
test dword [ebx + 0x44], edx
jne 0x40f113
push 5
call fcn.004523dc
add esp, 4
jmp 0x40f3be
cmp ecx, 0x2e
jne 0x40f1b6
push 0x14
call fcn.00453347
add esp, 4
cmp eax, edi
je 0x40f142
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
jmp 0x40f144
xor eax, eax
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [ebx + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, edi
je 0x40f160
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f1aa
cmp word [eax], 0x5c
jne 0x40f1a7
add eax, 2
cmp eax, ecx
je 0x40f192
test byte [ebx + 0x44], 8
jne 0x40f192
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f1a5
cmp ecx, 0x29
je 0x40f1a5
test byte [ebx + 0x44], 0x10
jne 0x40f1a7
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f1a5
cmp ecx, 0x7d
jne 0x40f1a7
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d730
jmp 0x40f3be
cmp ecx, 0x5c
jne 0x40f29f
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f200
cmp word [eax], 0x5c
jne 0x40f1fd
add eax, 2
cmp eax, ecx
je 0x40f1e8
test byte [ebx + 0x44], 8
jne 0x40f1e8
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f1fb
cmp ecx, 0x29
je 0x40f1fb
test byte [ebx + 0x44], 0x10
jne 0x40f1fd
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f1fb
cmp ecx, 0x7d
jne 0x40f1fd
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d730
mov eax, dword [ebx + 0x44]
and eax, 0x80
je 0x40f26d
cmp word [ebx + 0x3e], 0x62
jne 0x40f26d
lea esi, [ebx + 0x18]
call fcn.004114e0
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f261
cmp word [eax], 0x5c
jne 0x40f25e
add eax, 2
cmp eax, ecx
je 0x40f249
test byte [ebx + 0x44], 8
jne 0x40f249
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f25c
cmp ecx, 0x29
je 0x40f25c
test byte [ebx + 0x44], 0x10
jne 0x40f25e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f25c
cmp ecx, 0x7d
jne 0x40f25e
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d730
jmp 0x40f3c5
cmp eax, edi
je 0x40f293
cmp word [ebx + 0x3e], 0x42
jne 0x40f293
lea esi, [ebx + 0x18]
call fcn.004114e0
mov eax, dword [ebx + 0x1c]
xor dword [eax + 8], 1
mov eax, ebx
call fcn.0040f070
jmp 0x40f3c5
mov eax, ebx
call fcn.00410840
jmp 0x40f3be
cmp ecx, 0x5b
jne 0x40f34f
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f2e9
cmp word [eax], 0x5c
jne 0x40f2e6
add eax, 2
cmp eax, ecx
je 0x40f2d1
test byte [ebx + 0x44], 8
jne 0x40f2d1
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f2e4
cmp ecx, 0x29
je 0x40f2e4
test byte [ebx + 0x44], 0x10
jne 0x40f2e6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f2e4
cmp ecx, 0x7d
jne 0x40f2e6
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d730
call fcn.00410790
cmp dword [ebx + 0x40], 0x5d
je 0x40f305
push 4
call fcn.004523dc
add esp, 4
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f346
cmp word [eax], 0x5c
jne 0x40f343
add eax, 2
cmp eax, ecx
je 0x40f32e
test byte [ebx + 0x44], 8
jne 0x40f32e
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f341
cmp ecx, 0x29
je 0x40f341
test byte [ebx + 0x44], 0x10
jne 0x40f343
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f341
cmp ecx, 0x7d
jne 0x40f343
mov dword [ebx], eax
add dword [ebx], 2
call fcn.0040d730
xor edi, edi
jmp 0x40f3be
cmp ecx, 0x28
jne 0x40f3db
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x40f399
cmp word [eax], 0x5c
jne 0x40f396
add eax, 2
cmp eax, ecx
je 0x40f381
test byte [ebx + 0x44], 8
jne 0x40f381
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f394
cmp ecx, 0x29
je 0x40f394
test byte [ebx + 0x44], 0x10
jne 0x40f396
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f394
cmp ecx, 0x7d
jne 0x40f396
mov dword [ebx], eax
add dword [ebx], 2
mov esi, ebx
call fcn.0040d730
mov eax, ebx
call fcn.00410900
mov byte [ebp - 1], al
push 0x29
mov ecx, 5
mov eax, ebx
call fcn.00410720
cmp byte [ebp - 1], 0
je 0x40f3c5
mov eax, ebx
call fcn.004109b0
cmp dword [ebx + 0x40], 0xffff
mov al, 1
jne 0x40f0e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5e
jne 0x40f3f1
lea esi, [ebx + 0x18]
call fcn.00411440
mov eax, ebx
call fcn.0040f070
jmp 0x40f3c5
cmp ecx, 0x24
jne 0x40f407
lea esi, [ebx + 0x18]
call fcn.00411490
mov eax, ebx
call fcn.0040f070
jmp 0x40f3c5
cmp ecx, 0x2a
je 0x40f463
cmp ecx, 0x2b
je 0x40f463
cmp ecx, 0x3f
je 0x40f463
cmp ecx, 0x7b
je 0x40f463
cmp ecx, 0x7d
jne 0x40f431
test dword [ebx + 0x44], edx
jne 0x40f431
push 6
call fcn.004523dc
add esp, 4
jmp 0x40f3be
cmp ecx, 0x5d
jne 0x40f44a
test dword [ebx + 0x44], edx
jne 0x40f44a
push 4
call fcn.004523dc
add esp, 4
jmp 0x40f3be
movzx edx, word [ebx + 0x3e]
lea ecx, [ebx + 0x18]
push edx
call fcn.00410af0
mov eax, ebx
call fcn.0040f070
jmp 0x40f3be
push 0xa
call fcn.004523dc
add esp, 4
jmp 0x40f3be