Function at 0x419100
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 0x41940d
jmp 0x419122
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x41940d
cmp ecx, 0x29
jne 0x419155
cmp dword [edi + 0x10], ebx
jne 0x41940d
test dword [edi + 0x44], edx
jne 0x419155
push 5
call fcn.0042d6db
add esp, 4
jmp 0x4193f7
cmp ecx, 0x2e
jne 0x4191f8
push 0x14
call fcn.0042ec9c
add esp, 4
cmp eax, ebx
je 0x419184
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 0x419186
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 0x4191a2
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 0x4191ec
cmp word [eax], 0x5c
jne 0x4191e9
add eax, 2
cmp eax, ecx
je 0x4191d4
test byte [edi + 0x44], 8
jne 0x4191d4
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4191e7
cmp ecx, 0x29
je 0x4191e7
test byte [edi + 0x44], 0x10
jne 0x4191e9
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4191e7
cmp ecx, 0x7d
jne 0x4191e9
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00417fa0
jmp 0x4193f7
cmp ecx, 0x5c
jne 0x4192e1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x419242
cmp word [eax], 0x5c
jne 0x41923f
add eax, 2
cmp eax, ecx
je 0x41922a
test byte [edi + 0x44], 8
jne 0x41922a
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x41923d
cmp ecx, 0x29
je 0x41923d
test byte [edi + 0x44], 0x10
jne 0x41923f
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41923d
cmp ecx, 0x7d
jne 0x41923f
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00417fa0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x4192af
cmp word [edi + 0x3e], 0x62
jne 0x4192af
lea esi, [edi + 0x18]
call fcn.0041a500
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4192a3
cmp word [eax], 0x5c
jne 0x4192a0
add eax, 2
cmp eax, ecx
je 0x41928b
test byte [edi + 0x44], 8
jne 0x41928b
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x41929e
cmp ecx, 0x29
je 0x41929e
test byte [edi + 0x44], 0x10
jne 0x4192a0
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x41929e
cmp ecx, 0x7d
jne 0x4192a0
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00417fa0
jmp 0x4193fe
cmp eax, ebx
je 0x4192d5
cmp word [edi + 0x3e], 0x42
jne 0x4192d5
lea esi, [edi + 0x18]
call fcn.0041a500
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.004190b0
jmp 0x4193fe
mov eax, edi
call fcn.0041a1a0
jmp 0x4193f7
cmp ecx, 0x5b
jne 0x41938f
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x41932b
cmp word [eax], 0x5c
jne 0x419328
add eax, 2
cmp eax, ecx
je 0x419313
test byte [edi + 0x44], 8
jne 0x419313
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x419326
cmp ecx, 0x29
je 0x419326
test byte [edi + 0x44], 0x10
jne 0x419328
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x419326
cmp ecx, 0x7d
jne 0x419328
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00417fa0
call fcn.0041a0f0
cmp dword [edi + 0x40], 0x5d
je 0x419347
push 4
call fcn.0042d6db
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x419388
cmp word [eax], 0x5c
jne 0x419385
add eax, 2
cmp eax, ecx
je 0x419370
test byte [edi + 0x44], 8
jne 0x419370
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x419383
cmp ecx, 0x29
je 0x419383
test byte [edi + 0x44], 0x10
jne 0x419385
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x419383
cmp ecx, 0x7d
jne 0x419385
mov dword [edi], eax
add dword [edi], 2
call fcn.00417fa0
jmp 0x4193f7
cmp ecx, 0x28
jne 0x419411
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x4193d5
cmp word [eax], 0x5c
jne 0x4193d2
add eax, 2
cmp eax, ecx
je 0x4193bd
test byte [edi + 0x44], 8
jne 0x4193bd
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4193d0
cmp ecx, 0x29
je 0x4193d0
test byte [edi + 0x44], 0x10
jne 0x4193d2
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4193d0
cmp ecx, 0x7d
jne 0x4193d2
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.00417fa0
mov eax, edi
call fcn.0041a270
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.0041a080
test bl, bl
je 0x4193fe
mov eax, edi
call fcn.0041a320
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x419120
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x419427
lea esi, [edi + 0x18]
call fcn.0041a460
mov eax, edi
call fcn.004190b0
jmp 0x4193fe
cmp ecx, 0x24
jne 0x41943d
lea esi, [edi + 0x18]
call fcn.0041a4b0
mov eax, edi
call fcn.004190b0
jmp 0x4193fe
cmp ecx, 0x2a
je 0x419499
cmp ecx, 0x2b
je 0x419499
cmp ecx, 0x3f
je 0x419499
cmp ecx, 0x7b
je 0x419499
cmp ecx, 0x7d
jne 0x419467
test dword [edi + 0x44], edx
jne 0x419467
push 6
call fcn.0042d6db
add esp, 4
jmp 0x4193f7
cmp ecx, 0x5d
jne 0x419480
test dword [edi + 0x44], edx
jne 0x419480
push 4
call fcn.0042d6db
add esp, 4
jmp 0x4193f7
movzx edx, word [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.0041a550
mov eax, edi
call fcn.004190b0
jmp 0x4193f7
push 0xa
call fcn.0042d6db
add esp, 4
jmp 0x4193f7