Function at 0x476380
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor al, al
cmp dword [esi + 0x40], 0xffff
je 0x4765b7
push ebx
mov ecx, dword [esi + 0x40]
cmp ecx, 0x7c
je 0x4765b6
xor ebx, ebx
cmp ecx, 0x29
jne 0x4763c8
cmp dword [esi + 0x10], ebx
jne 0x4765b6
mov eax, 0x10000000
test dword [esi + 0x44], eax
jne 0x4763cd
push 5
call fcn.00556db4
add esp, 4
jmp 0x4765a0
mov eax, 0x10000000
cmp ecx, 0x2e
jne 0x476470
push 0x14
call fcn.0042bfa0
add esp, 4
cmp eax, ebx
je 0x4763fc
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 0x4763fe
xor eax, eax
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x47641a
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x476464
cmp word [eax], 0x5c
jne 0x476461
add eax, 2
cmp eax, ecx
je 0x47644c
test byte [esi + 0x44], 8
jne 0x47644c
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x47645f
cmp ecx, 0x29
je 0x47645f
test byte [esi + 0x44], 0x10
jne 0x476461
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x47645f
cmp ecx, 0x7d
jne 0x476461
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0046c460
jmp 0x4765a0
cmp ecx, 0x5c
jne 0x47651b
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4764ba
cmp word [eax], 0x5c
jne 0x4764b7
add eax, 2
cmp eax, ecx
je 0x4764a2
test byte [esi + 0x44], 8
jne 0x4764a2
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4764b5
cmp ecx, 0x29
je 0x4764b5
test byte [esi + 0x44], 0x10
jne 0x4764b7
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4764b5
cmp ecx, 0x7d
jne 0x4764b7
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0046c460
mov eax, dword [esi + 0x44]
and eax, 0x80
je 0x4764e6
cmp word [esi + 0x3e], 0x62
jne 0x4764e6
lea ecx, [esi + 0x18]
call fcn.0046b660
mov ecx, esi
call fcn.0046c610
jmp 0x4765a7
cmp eax, ebx
je 0x47650f
cmp word [esi + 0x3e], 0x42
jne 0x47650f
lea ecx, [esi + 0x18]
call fcn.0046b660
mov eax, dword [esi + 0x1c]
xor dword [eax + 8], 1
add eax, 8
mov ecx, esi
call fcn.0046c610
jmp 0x4765a7
mov ecx, esi
call fcn.00475540
jmp 0x4765a0
cmp ecx, 0x5b
jne 0x47657c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x476561
cmp word [eax], 0x5c
jne 0x47655e
add eax, 2
cmp eax, ecx
je 0x476549
test byte [esi + 0x44], 8
jne 0x476549
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x47655c
cmp ecx, 0x29
je 0x47655c
test byte [esi + 0x44], 0x10
jne 0x47655e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x47655c
cmp ecx, 0x7d
jne 0x47655e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0046c460
mov ecx, esi
call fcn.004761d0
push 4
push 0x5d
mov ecx, esi
call fcn.0046c660
jmp 0x4765a0
cmp ecx, 0x28
jne 0x4765b9
mov ecx, esi
call fcn.0046c610
mov ecx, esi
call fcn.0046c6d0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.0046c660
test bl, bl
je 0x4765a7
mov ecx, esi
call fcn.00475600
cmp dword [esi + 0x40], 0xffff
mov al, 1
jne 0x476393
pop ebx
pop esi
ret
cmp ecx, 0x5e
jne 0x4765cf
lea ecx, [esi + 0x18]
call fcn.0048b7d0
mov ecx, esi
call fcn.0046c610
jmp 0x4765a7
cmp ecx, 0x24
jne 0x4765e5
lea ecx, [esi + 0x18]
call fcn.0046b600
mov ecx, esi
call fcn.0046c610
jmp 0x4765a7
cmp ecx, 0x2a
je 0x476641
cmp ecx, 0x2b
je 0x476641
cmp ecx, 0x3f
je 0x476641
cmp ecx, 0x7b
je 0x476641
cmp ecx, 0x7d
jne 0x47660f
test dword [esi + 0x44], eax
jne 0x47660f
push 6
call fcn.00556db4
add esp, 4
jmp 0x4765a0
cmp ecx, 0x5d
jne 0x476628
test dword [esi + 0x44], eax
jne 0x476628
push 4
call fcn.00556db4
add esp, 4
jmp 0x4765a0
movzx edx, word [esi + 0x3e]
lea ecx, [esi + 0x18]
push edx
call fcn.00474970
mov ecx, esi
call fcn.0046c610
jmp 0x4765a0
push 0xa
call fcn.00556db4
add esp, 4
jmp 0x4765a0